diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2011-01-06 13:51:04 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2011-01-06 14:00:50 (GMT) |
commit | 91596c9c08208690894ec11a3a99eac57ad17f2b (patch) | |
tree | c63a555b2103f3f3732e3aac3bfa59f7c0ce15a9 | |
parent | 5c3010cf467d437ccfc8a263bed167e979614504 (diff) | |
download | Qt-91596c9c08208690894ec11a3a99eac57ad17f2b.zip Qt-91596c9c08208690894ec11a3a99eac57ad17f2b.tar.gz Qt-91596c9c08208690894ec11a3a99eac57ad17f2b.tar.bz2 |
QUrl::setUrl should call detach
Task-number: QTBUG-16425
Reviewed-by: Gabriel
Reviewed-by: Markus Goetz
-rw-r--r-- | src/corelib/io/qurl.cpp | 1 | ||||
-rw-r--r-- | tests/auto/qurl/tst_qurl.cpp | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 6a3037d..45f908d 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -4262,6 +4262,7 @@ void QUrl::setUrl(const QString &url) */ void QUrl::setUrl(const QString &url, ParsingMode parsingMode) { + detach(); // escape all reserved characters and delimiters // reserved = gen-delims / sub-delims if (parsingMode != TolerantMode) { diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp index 63f9721..4354ffb 100644 --- a/tests/auto/qurl/tst_qurl.cpp +++ b/tests/auto/qurl/tst_qurl.cpp @@ -675,6 +675,14 @@ void tst_QUrl::setUrl() QCOMPARE(url.encodedPath().constData(), "text/javascript,d5%20%3D%20'five%5Cu0027s'%3B"); } + { //check it calls detach + QUrl u1("http://aaa.com"); + QUrl u2 = u1; + u2.setUrl("http://bbb.com"); + QCOMPARE(u1.host(), QString::fromLatin1("aaa.com")); + QCOMPARE(u2.host(), QString::fromLatin1("bbb.com")); + } + /* The tests below are copied from kdelibs/kdecore/tests/kurltest.cpp (an old version of) |