2006-08-30 Nikolas Zimmermann <zimmermann@kde.org>
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Aug 2006 19:37:39 +0000 (19:37 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Aug 2006 19:37:39 +0000 (19:37 +0000)
        Reviewed by eseidel.

        The old solution was slow & does not work correctly.
        Move the QString -> DeprecatedString conversion into
        DeprectedString.cpp, to be able to access allocateHandle().

        * platform/DeprecatedString.cpp:
        (WebCore::DeprecatedString::DeprecatedString):
        * platform/qt/StringQt.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/DeprecatedString.cpp
WebCore/platform/qt/StringQt.cpp

index 71bf94f158ab96694b0724d82e7fb9d19de66950..1344fbae3a9ca2a137d74a0fb0bfd47e6c2e584b 100644 (file)
@@ -1,3 +1,15 @@
+2006-08-30  Nikolas Zimmermann  <zimmermann@kde.org>
+
+        Reviewed by eseidel.
+
+        The old solution was slow & does not work correctly.
+        Move the QString -> DeprecatedString conversion into
+        DeprectedString.cpp, to be able to access allocateHandle().
+
+        * platform/DeprecatedString.cpp:
+        (WebCore::DeprecatedString::DeprecatedString):
+        * platform/qt/StringQt.cpp:
+
 2006-08-30  Nikolas Zimmermann  <zimmermann@kde.org>
 
         Reviewed/landed by Adam.
index 342a17ce77f4d778e370cb88fcfc2cf7d3b4cdb3..f8cf59bda9c5aa9e870d64dc0394776971c3934c 100644 (file)
 #include <windows.h>
 #endif
 
+#if PLATFORM(QT)
+#include <QString>
+#endif
+
 using namespace std;
 using namespace KJS;
 
@@ -2589,6 +2593,21 @@ DeprecatedString::DeprecatedString(const UString& str)
     }
 }
 
+#if PLATFORM(QT)
+DeprecatedString::DeprecatedString(const QString& str)
+{
+    if (str.isNull()) {
+        internalData.deref();
+        dataHandle = makeSharedNullHandle();
+        dataHandle[0]->ref();
+    } else {
+        dataHandle = allocateHandle();
+        *dataHandle = &internalData;
+        internalData.initialize(reinterpret_cast<const DeprecatedChar*>(str.data()), str.length());
+    }
+}
+#endif
+
 DeprecatedString::operator Identifier() const
 {
     if (isNull())
index a9d72f5dbb7075f554474e7f680e57e69fb0709a..c1d00eee5031c1f81bb5337ad876227d67aaf9e9 100644 (file)
@@ -53,16 +53,6 @@ String::operator QString() const
 }
 
 // DeprecatedString conversions
-DeprecatedString::DeprecatedString(const QString& qstr)
-{
-    if (qstr.isNull()) {
-        (*this) = DeprecatedString::null;
-    } else {
-        QByteArray utf8Data = qstr.toUtf8();
-        (*this) = DeprecatedString::fromUtf8(utf8Data.data(), utf8Data.length());
-    }
-}
-
 DeprecatedString::operator QString() const
 {
     return QString(reinterpret_cast<const QChar*>(unicode()), length());