[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

jianli at chromium.org jianli at chromium.org
Wed Dec 22 12:50:53 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 89324b0c64817524edce5406e42666a289b1f6da
Author: jianli at chromium.org <jianli at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Aug 31 17:17:21 2010 +0000

    Improve BlobBuilder to combine adjacent strings.
    https://bugs.webkit.org/post_bug.cgi
    
    Reviewed by Darin Fisher.
    
    * fileapi/BlobBuilder.cpp:
    (WebCore::addTwoCStrings):
    (WebCore::BlobBuilder::append):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66499 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index f9bc6b6..37e984c 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-31  Jian Li  <jianli at chromium.org>
+
+        Reviewed by Darin Fisher.
+
+        Improve BlobBuilder to combine adjacent strings.
+        https://bugs.webkit.org/post_bug.cgi
+
+        * fileapi/BlobBuilder.cpp:
+        (WebCore::addTwoCStrings):
+        (WebCore::BlobBuilder::append):
+
 2010-08-31  Darin Adler  <darin at apple.com>
 
         Reviewed by Simon Fraser.
diff --git a/WebCore/fileapi/BlobBuilder.cpp b/WebCore/fileapi/BlobBuilder.cpp
index 08ded1b..ff024ab 100644
--- a/WebCore/fileapi/BlobBuilder.cpp
+++ b/WebCore/fileapi/BlobBuilder.cpp
@@ -57,6 +57,20 @@ static CString convertToCString(const String& text, const String& endingType, Ex
     return CString();
 }
 
+static CString addTwoCStrings(const CString& a, const CString& b)
+{
+    if (a.isNull() && b.isNull())
+        return CString();
+
+    char* q;
+    CString result = CString::newUninitialized(a.length() + b.length(), q);
+    if (a.length())
+        memcpy(q, a.data(), a.length());
+    if (b.length())
+        memcpy(q + a.length(), b.data(), b.length());
+    return result;
+}
+
 BlobBuilder::BlobBuilder()
     : m_size(0)
 {
@@ -69,7 +83,12 @@ bool BlobBuilder::append(const String& text, const String& endingType, Exception
         return false;
 
     m_size += cstr.length();
-    m_items.append(BlobDataItem(cstr));
+
+    // If the last item is a string, concatenate it with current string.
+    if (!m_items.isEmpty() && m_items[m_items.size() - 1].type == BlobDataItem::Data)
+        m_items[m_items.size() - 1].data = addTwoCStrings(m_items[m_items.size() - 1].data, cstr);
+    else
+        m_items.append(BlobDataItem(cstr));
     return true;
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list