[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

gramps gramps at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:46:06 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 2cbe1e6194676217152becb861de7459c47b82af
Author: gramps <gramps at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Sep 21 18:12:38 2001 +0000

    Implemented assignment operators and remaining constructor
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@171 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/kwq/KWQString.mm b/WebCore/kwq/KWQString.mm
index d73a1d6..8df0c9c 100644
--- a/WebCore/kwq/KWQString.mm
+++ b/WebCore/kwq/KWQString.mm
@@ -38,22 +38,45 @@ QString::QString(QChar qc)
     CFStringAppendCharacters(s, &qc.c, 1);
 }
 
-QString::QString(const QChar *qc, uint len)
+QString::QString(const QByteArray &qba)
 {
-    if (qc || len) {
+    if (qba.size() && *qba.data()) {
         s = CFStringCreateMutable(NULL, 0);
-        CFStringAppendCharacters(s, &qc->c, len);
+        const int capacity = 64;
+        UniChar buf[capacity];
+        int fill = 0;
+        for (uint len = 0; (len < qba.size()) && qba[len]; len++) {
+            buf[fill] = qba[len];
+            fill++;
+            if (fill == capacity) {
+                CFStringAppendCharacters(s, buf, fill);
+                fill = 0;
+            }
+        }
+        if (fill) {
+            CFStringAppendCharacters(s, buf, fill);
+        }
     } else {
         s = NULL;
     }
 }
 
-QString::QString(const char *ch)
+QString::QString(const QChar *qcs, uint len)
 {
-    if (ch) {
+    if (qcs || len) {
+        s = CFStringCreateMutable(NULL, 0);
+        CFStringAppendCharacters(s, &qcs->c, len);
+    } else {
+        s = NULL;
+    }
+}
+
+QString::QString(const char *chs)
+{
+    if (chs && *chs) {
         s = CFStringCreateMutable(NULL, 0);
         // FIXME: is ISO Latin-1 the correct encoding?
-        CFStringAppendCString(s, ch, kCFStringEncodingISOLatin1);
+        CFStringAppendCString(s, chs, kCFStringEncodingISOLatin1);
     } else {
         s = NULL;
     }
@@ -64,12 +87,41 @@ QString::~QString()
     CFRelease(s);
 }
 
-QConstString::QConstString(QChar *qc, uint len)
+QString &QString::operator=(const QString &qs)
+{
+    // shared copy
+    CFRetain(qs.s);
+    CFRelease(s);
+    s = qs.s;
+    return *this;
+}
+
+QString &QString::operator=(const QCString &qcs)
+{
+    return *this = QString(qcs);
+}
+
+QString &QString::operator=(const char *chs)
+{
+    return *this = QString(chs);
+}
+
+QString &QString::operator=(QChar qc)
+{
+    return *this = QString(qc);
+}
+
+QString &QString::operator=(char ch)
+{
+    return *this = QString(QChar(ch));
+}
+
+QConstString::QConstString(QChar *qcs, uint len)
 {
-    if (qc || len) {
+    if (qcs || len) {
         // NOTE: use instead of CFStringCreateWithCharactersNoCopy function to
         // guarantee backing store is not copied even though string is mutable
-        s = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, &qc->c,
+        s = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, &qcs->c,
                 len, len, kCFAllocatorNull);
     } else {
         s = NULL;
diff --git a/WebCore/src/kwq/KWQString.mm b/WebCore/src/kwq/KWQString.mm
index d73a1d6..8df0c9c 100644
--- a/WebCore/src/kwq/KWQString.mm
+++ b/WebCore/src/kwq/KWQString.mm
@@ -38,22 +38,45 @@ QString::QString(QChar qc)
     CFStringAppendCharacters(s, &qc.c, 1);
 }
 
-QString::QString(const QChar *qc, uint len)
+QString::QString(const QByteArray &qba)
 {
-    if (qc || len) {
+    if (qba.size() && *qba.data()) {
         s = CFStringCreateMutable(NULL, 0);
-        CFStringAppendCharacters(s, &qc->c, len);
+        const int capacity = 64;
+        UniChar buf[capacity];
+        int fill = 0;
+        for (uint len = 0; (len < qba.size()) && qba[len]; len++) {
+            buf[fill] = qba[len];
+            fill++;
+            if (fill == capacity) {
+                CFStringAppendCharacters(s, buf, fill);
+                fill = 0;
+            }
+        }
+        if (fill) {
+            CFStringAppendCharacters(s, buf, fill);
+        }
     } else {
         s = NULL;
     }
 }
 
-QString::QString(const char *ch)
+QString::QString(const QChar *qcs, uint len)
 {
-    if (ch) {
+    if (qcs || len) {
+        s = CFStringCreateMutable(NULL, 0);
+        CFStringAppendCharacters(s, &qcs->c, len);
+    } else {
+        s = NULL;
+    }
+}
+
+QString::QString(const char *chs)
+{
+    if (chs && *chs) {
         s = CFStringCreateMutable(NULL, 0);
         // FIXME: is ISO Latin-1 the correct encoding?
-        CFStringAppendCString(s, ch, kCFStringEncodingISOLatin1);
+        CFStringAppendCString(s, chs, kCFStringEncodingISOLatin1);
     } else {
         s = NULL;
     }
@@ -64,12 +87,41 @@ QString::~QString()
     CFRelease(s);
 }
 
-QConstString::QConstString(QChar *qc, uint len)
+QString &QString::operator=(const QString &qs)
+{
+    // shared copy
+    CFRetain(qs.s);
+    CFRelease(s);
+    s = qs.s;
+    return *this;
+}
+
+QString &QString::operator=(const QCString &qcs)
+{
+    return *this = QString(qcs);
+}
+
+QString &QString::operator=(const char *chs)
+{
+    return *this = QString(chs);
+}
+
+QString &QString::operator=(QChar qc)
+{
+    return *this = QString(qc);
+}
+
+QString &QString::operator=(char ch)
+{
+    return *this = QString(QChar(ch));
+}
+
+QConstString::QConstString(QChar *qcs, uint len)
 {
-    if (qc || len) {
+    if (qcs || len) {
         // NOTE: use instead of CFStringCreateWithCharactersNoCopy function to
         // guarantee backing store is not copied even though string is mutable
-        s = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, &qc->c,
+        s = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, &qcs->c,
                 len, len, kCFAllocatorNull);
     } else {
         s = NULL;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list