diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index 51aa0b7512..edce0ff720 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -10506,7 +10506,7 @@ ownership of it, no memory is freed when instances are destroyed. */ QString QStringRef::toString() const { - if (!m_string) + if (isNull()) return QString(); if (m_size && m_position == 0 && m_size == m_string->size()) return *m_string; diff --git a/tests/auto/corelib/text/qstringref/tst_qstringref.cpp b/tests/auto/corelib/text/qstringref/tst_qstringref.cpp index 6f01947131..20d5426bf7 100644 --- a/tests/auto/corelib/text/qstringref/tst_qstringref.cpp +++ b/tests/auto/corelib/text/qstringref/tst_qstringref.cpp @@ -87,6 +87,7 @@ private slots: void mid(); void split_data(); void split(); + void nullToString(); }; static QStringRef emptyRef() @@ -2177,6 +2178,18 @@ void tst_QStringRef::split() } } +void tst_QStringRef::nullToString() +{ + QStringRef nullRef; + QVERIFY(nullRef.isNull()); + QVERIFY(nullRef.toString().isNull()); + + QString str; + nullRef = &str; + QVERIFY(nullRef.isNull()); + QVERIFY(nullRef.toString().isNull()); +} + QTEST_APPLESS_MAIN(tst_QStringRef) #include "tst_qstringref.moc"