diff options
author | Steve Block <steveblock@google.com> | 2010-08-27 11:02:25 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-09-02 17:17:20 +0100 |
commit | e8b154fd68f9b33be40a3590e58347f353835f5c (patch) | |
tree | 0733ce26384183245aaa5656af26c653636fe6c1 /JavaScriptCore/runtime/StringBuilder.h | |
parent | da56157816334089526a7a115a85fd85a6e9a1dc (diff) | |
download | external_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.h | 9 |
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(); } |