diff options
Diffstat (limited to 'deps/v8/src/objects/string-comparator.cc')
-rw-r--r-- | deps/v8/src/objects/string-comparator.cc | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/deps/v8/src/objects/string-comparator.cc b/deps/v8/src/objects/string-comparator.cc index 79ec348c71..3330f772ff 100644 --- a/deps/v8/src/objects/string-comparator.cc +++ b/deps/v8/src/objects/string-comparator.cc @@ -9,17 +9,19 @@ namespace v8 { namespace internal { -void StringComparator::State::Init(String string) { - ConsString cons_string = String::VisitFlat(this, string); +void StringComparator::State::Init( + String string, const SharedStringAccessGuardIfNeeded& access_guard) { + ConsString cons_string = String::VisitFlat(this, string, 0, access_guard); iter_.Reset(cons_string); if (!cons_string.is_null()) { int offset; string = iter_.Next(&offset); - String::VisitFlat(this, string, offset); + String::VisitFlat(this, string, offset, access_guard); } } -void StringComparator::State::Advance(int consumed) { +void StringComparator::State::Advance( + int consumed, const SharedStringAccessGuardIfNeeded& access_guard) { DCHECK(consumed <= length_); // Still in buffer. if (length_ != consumed) { @@ -36,13 +38,15 @@ void StringComparator::State::Advance(int consumed) { String next = iter_.Next(&offset); DCHECK_EQ(0, offset); DCHECK(!next.is_null()); - String::VisitFlat(this, next); + String::VisitFlat(this, next, 0, access_guard); } -bool StringComparator::Equals(String string_1, String string_2) { +bool StringComparator::Equals( + String string_1, String string_2, + const SharedStringAccessGuardIfNeeded& access_guard) { int length = string_1.length(); - state_1_.Init(string_1); - state_2_.Init(string_2); + state_1_.Init(string_1, access_guard); + state_2_.Init(string_2, access_guard); while (true) { int to_check = std::min(state_1_.length_, state_2_.length_); DCHECK(to_check > 0 && to_check <= length); @@ -65,8 +69,8 @@ bool StringComparator::Equals(String string_1, String string_2) { length -= to_check; // Exit condition. Strings are equal. if (length == 0) return true; - state_1_.Advance(to_check); - state_2_.Advance(to_check); + state_1_.Advance(to_check, access_guard); + state_2_.Advance(to_check, access_guard); } } |