Make sure the text decoder returns empty strings rather than null strings when the...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Nov 2004 00:32:01 +0000 (00:32 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Nov 2004 00:32:01 +0000 (00:32 +0000)
Ensures that <a href=""> works with libxml (which returns data in utf-8 buffers).

        Reviewed by darin

        * kwq/KWQTextCodec.mm:
        (KWQTextDecoder::convertLatin1):
        (KWQTextDecoder::convertUTF16):
        (KWQTextDecoder::convertUsingTEC):
        (KWQTextDecoder::toUnicode):

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

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQTextCodec.mm

index 65e73ff6e852f12b64d694fd05a64aebe9e113bc..116831be61d8512f67994a90894e5ee4bf167f74 100644 (file)
@@ -1,3 +1,16 @@
+2004-11-04  David Hyatt  <hyatt@apple.com>
+
+       Make sure the text decoder returns empty strings rather than null strings when the utf8 char ptr is non-null.
+       Ensures that <a href=""> works with libxml (which returns data in utf-8 buffers).
+
+        Reviewed by darin
+
+        * kwq/KWQTextCodec.mm:
+        (KWQTextDecoder::convertLatin1):
+        (KWQTextDecoder::convertUTF16):
+        (KWQTextDecoder::convertUsingTEC):
+        (KWQTextDecoder::toUnicode):
+
 2004-11-04  David Hyatt  <hyatt@apple.com>
 
        Make sure line-height returns the correct value for normal.
index c5c8169089e71a7d1bb493be50f4b0a6b0ebe501..480a2eef955e697d04a2e764cc752c529b797758 100644 (file)
@@ -251,7 +251,7 @@ QString KWQTextDecoder::convertLatin1(const unsigned char *s, int length)
         return QString(reinterpret_cast<const char *>(s), length);
     }
 
-    QString result;
+    QString result("");
     
     result.reserve(length);
     
@@ -279,7 +279,7 @@ QString KWQTextDecoder::convertUTF16(const unsigned char *s, int length)
     const unsigned char *p = s;
     unsigned len = length;
     
-    QString result;
+    QString result("");
     
     result.reserve(length / 2);
 
@@ -449,7 +449,7 @@ QString KWQTextDecoder::convertUsingTEC(const unsigned char *chs, int len, bool
         return QString();
     }
     
-    QString result;
+    QString result("");
 
     result.reserve(len);
 
@@ -554,9 +554,12 @@ QString KWQTextDecoder::toUnicode(const char *chs, int len, bool flush)
 {
     ASSERT_ARG(len, len >= 0);
     
-    if (_error || !chs || (len <= 0 && !flush)) {
+    if (_error || !chs) {
         return QString();
     }
+    if (len <= 0 && !flush) {
+        return "";
+    }
 
     // Handle normal case.
     if (!_atStart) {
@@ -592,7 +595,7 @@ QString KWQTextDecoder::toUnicode(const char *chs, int len, bool flush)
         int skip = BOMLength - numBufferedBytes;
         _numBufferedBytes = 0;
         _atStart = false;
-        return len == skip ? QString() : convert(chs + skip, len - skip, flush);
+        return len == skip ? QString("") : convert(chs + skip, len - skip, flush);
     }
 
     // Handle case where we know there is no BOM coming.
@@ -611,5 +614,5 @@ QString KWQTextDecoder::toUnicode(const char *chs, int len, bool flush)
     // Continue to look for the BOM.
     memcpy(&_bufferedBytes[numBufferedBytes], chs, len);
     _numBufferedBytes += len;
-    return QString();
+    return "";
 }