diff options
-rw-r--r-- | src/corelib/tools/qstringlist.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qstringlist/tst_qstringlist.cpp | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/corelib/tools/qstringlist.cpp b/src/corelib/tools/qstringlist.cpp index e9bdf57282..32a0b1e211 100644 --- a/src/corelib/tools/qstringlist.cpp +++ b/src/corelib/tools/qstringlist.cpp @@ -414,6 +414,8 @@ QString QtPrivate::QStringList_join(const QStringList *that, const QString &sep) totalLength += sep.size() * (size - 1); QString res; + if (totalLength == 0) + return res; res.reserve(totalLength); for (int i = 0; i < that->size(); ++i) { if (i) diff --git a/tests/auto/qstringlist/tst_qstringlist.cpp b/tests/auto/qstringlist/tst_qstringlist.cpp index 84293034ac..fb28bf45d1 100644 --- a/tests/auto/qstringlist/tst_qstringlist.cpp +++ b/tests/auto/qstringlist/tst_qstringlist.cpp @@ -77,6 +77,7 @@ private slots: void streamingOperator(); void join() const; void join_data() const; + void join_emptiness() const; }; extern const char email[]; @@ -311,5 +312,14 @@ void tst_QStringList::join_data() const << QString("a b c"); } +void tst_QStringList::join_emptiness() const +{ + QStringList list; + QString string = list.join(QString()); + + QCOMPARE(string.isEmpty(), true); + QCOMPARE(string.isNull(), true); +} + QTEST_APPLESS_MAIN(tst_QStringList) #include "tst_qstringlist.moc" |