summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/runtime/StringBuilder.h
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-08-27 11:02:25 +0100
committerSteve Block <steveblock@google.com>2010-09-02 17:17:20 +0100
commite8b154fd68f9b33be40a3590e58347f353835f5c (patch)
tree0733ce26384183245aaa5656af26c653636fe6c1 /JavaScriptCore/runtime/StringBuilder.h
parentda56157816334089526a7a115a85fd85a6e9a1dc (diff)
downloadexternal_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.zip
external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.tar.gz
external_webkit-e8b154fd68f9b33be40a3590e58347f353835f5c.tar.bz2
Merge WebKit at r66079 : Initial merge by git
Change-Id: Ie2e1440fb9d487d24e52c247342c076fecaecac7
Diffstat (limited to 'JavaScriptCore/runtime/StringBuilder.h')
-rw-r--r--JavaScriptCore/runtime/StringBuilder.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/JavaScriptCore/runtime/StringBuilder.h b/JavaScriptCore/runtime/StringBuilder.h
index a26b94c..27aa57f 100644
--- a/JavaScriptCore/runtime/StringBuilder.h
+++ b/JavaScriptCore/runtime/StringBuilder.h
@@ -44,7 +44,7 @@ public:
void append(const char* str, size_t len)
{
- buffer.reserveCapacity(buffer.size() + len);
+ reserveCapacity(buffer.size() + len);
for (size_t i = 0; i < len; i++)
buffer.append(static_cast<unsigned char>(str[i]));
}
@@ -60,7 +60,12 @@ public:
}
bool isEmpty() { return buffer.isEmpty(); }
- void reserveCapacity(size_t newCapacity) { buffer.reserveCapacity(newCapacity); }
+ void reserveCapacity(size_t newCapacity)
+ {
+ if (newCapacity < buffer.capacity())
+ return;
+ buffer.reserveCapacity(std::max(newCapacity, buffer.capacity() + buffer.capacity() / 4 + 1));
+ }
void resize(size_t size) { buffer.resize(size); }
size_t size() const { return buffer.size(); }