QStringBuilder: do not crash with null char*
This is supported by the others operator+ Change-Id: I9a1d1a0afb63acf32935948111d43ca6da370363 Reviewed-on: http://codereview.qt.nokia.com/764 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
parent
8fb4beb2a1
commit
53a16752c2
@ -162,6 +162,8 @@ void QAbstractConcatenable::convertFromAscii(const char *a, int len, QChar *&out
|
||||
}
|
||||
#endif
|
||||
if (len == -1) {
|
||||
if (!a)
|
||||
return;
|
||||
while (*a)
|
||||
*out++ = QLatin1Char(*a++);
|
||||
} else {
|
||||
|
@ -352,6 +352,8 @@ template <> struct QConcatenable<const char *> : private QAbstractConcatenable
|
||||
#endif
|
||||
static inline void appendTo(const char *a, char *&out)
|
||||
{
|
||||
if (!a)
|
||||
return;
|
||||
while (*a)
|
||||
*out++ = *a++;
|
||||
}
|
||||
|
@ -133,6 +133,12 @@ void runScenario()
|
||||
QCOMPARE(r, string);
|
||||
r = string P ba;
|
||||
QCOMPARE(r, string);
|
||||
|
||||
const char *zero = 0;
|
||||
r = string P zero;
|
||||
QCOMPARE(r, string);
|
||||
r = zero P string;
|
||||
QCOMPARE(r, string);
|
||||
#endif
|
||||
|
||||
string = QString::fromLatin1(LITERAL);
|
||||
@ -161,6 +167,12 @@ void runScenario()
|
||||
QCOMPARE(r, r2);
|
||||
r2 = QByteArray("hello\0") P UTF8_LITERAL;
|
||||
QCOMPARE(r, r2);
|
||||
|
||||
const char *zero = 0;
|
||||
r = ba P zero;
|
||||
QCOMPARE(r, ba);
|
||||
r = zero P ba;
|
||||
QCOMPARE(r, ba);
|
||||
}
|
||||
|
||||
//operator QString +=
|
||||
|
Loading…
Reference in New Issue
Block a user