[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