diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-01-07 13:15:44 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-01-07 13:15:44 +0000 |
commit | 0c21ca9a7bd91fd88eabecfa9b6a528b51330149 (patch) | |
tree | 9b09def9306b0a87421179ecf56f6c39d42466b3 | |
parent | bafda7e96091220ec51e3e8597748215a990132c (diff) | |
parent | 52fe7a447644cb966cb9763e64c417ea341f5e32 (diff) | |
download | v8-0c21ca9a7bd91fd88eabecfa9b6a528b51330149.tar.gz |
Merge "LiteralBuffer::ExpandBuffer always grows" into oc-mr1-dev am: 49b6d94dd7 am: 085365d491 am: df062d0aea am: 52fe7a4476
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/v8/+/13120353
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Idbbfbf6e5bcf2ab50ce0f53dcf17a9dbef30f063
-rw-r--r-- | src/parsing/scanner.cc | 9 | ||||
-rw-r--r-- | src/parsing/scanner.h | 3 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/parsing/scanner.cc b/src/parsing/scanner.cc index 781832c2..38d1936f 100644 --- a/src/parsing/scanner.cc +++ b/src/parsing/scanner.cc @@ -68,13 +68,14 @@ Handle<String> Scanner::LiteralBuffer::Internalize(Isolate* isolate) const { } int Scanner::LiteralBuffer::NewCapacity(int min_capacity) { - int capacity = Max(min_capacity, backing_store_.length()); - int new_capacity = Min(capacity * kGrowthFactory, capacity + kMaxGrowth); - return new_capacity; + return min_capacity < (kMaxGrowth / (kGrowthFactor - 1)) + ? min_capacity * kGrowthFactor + : min_capacity + kMaxGrowth; } void Scanner::LiteralBuffer::ExpandBuffer() { - Vector<byte> new_store = Vector<byte>::New(NewCapacity(kInitialCapacity)); + int min_capacity = Max(kInitialCapacity, backing_store_.length()); + Vector<byte> new_store = Vector<byte>::New(NewCapacity(min_capacity)); MemCopy(new_store.start(), backing_store_.start(), position_); backing_store_.Dispose(); backing_store_ = new_store; diff --git a/src/parsing/scanner.h b/src/parsing/scanner.h index e592debd..02cd247f 100644 --- a/src/parsing/scanner.h +++ b/src/parsing/scanner.h @@ -482,8 +482,7 @@ class Scanner { private: static const int kInitialCapacity = 16; - static const int kGrowthFactory = 4; - static const int kMinConversionSlack = 256; + static const int kGrowthFactor = 4; static const int kMaxGrowth = 1 * MB; inline bool IsValidAscii(char code_unit) { |