aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-01-07 12:58:17 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-01-07 12:58:17 +0000
commit52fe7a447644cb966cb9763e64c417ea341f5e32 (patch)
treed2ece95627447c840cd0d34b6f339e6ab5685d70
parenta2bf5cb802412e7c24b6350791914c6b517f0317 (diff)
parentdf062d0aeabc547eef3c82d990251d58254b1d0c (diff)
downloadv8-52fe7a447644cb966cb9763e64c417ea341f5e32.tar.gz
Merge "LiteralBuffer::ExpandBuffer always grows" into oc-mr1-dev am: 49b6d94dd7 am: 085365d491 am: df062d0aea
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/v8/+/13120353 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I35a3542c8f5d7d5ce93258034e6f779e76f0dee6
-rw-r--r--src/parsing/scanner.cc9
-rw-r--r--src/parsing/scanner.h3
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) {