summaryrefslogtreecommitdiffstats
path: root/src/tools/moc/preprocessor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/moc/preprocessor.cpp')
-rw-r--r--src/tools/moc/preprocessor.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp
index a2a1a958cf..bfe61d0895 100644
--- a/src/tools/moc/preprocessor.cpp
+++ b/src/tools/moc/preprocessor.cpp
@@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE
static QByteArray cleaned(const QByteArray &input)
{
QByteArray result;
- result.reserve(input.size());
+ result.resize(input.size());
const char *data = input.constData();
const char *end = input.constData() + input.size();
char *output = result.data();
@@ -78,13 +78,15 @@ static QByteArray cleaned(const QByteArray &input)
if (data != end && (*(data + 1) == '\n' || (*data) == '\r')) {
++newlines;
data += 1;
- if (*data != '\r')
+ if (data != end && *data != '\r')
data += 1;
continue;
}
} else if (*data == '\r' && *(data + 1) == '\n') { // reduce \r\n to \n
++data;
}
+ if (data == end)
+ break;
char ch = *data;
if (ch == '\r') // os9: replace \r with \n