Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 62502aff3a29b93192c27635d60fed1672a7e390..98a7237dead7f0d44923c5c74b4cd483023f15f6 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -13831,7 +13831,7 @@ class StringSharedKey : public HashTableKey { |
// RegExpKey carries the source and flags of a regular expression as key. |
class RegExpKey : public HashTableKey { |
public: |
- RegExpKey(String* string, JSRegExp::Flags flags) |
+ RegExpKey(Handle<String> string, JSRegExp::Flags flags) |
: string_(string), |
flags_(Smi::FromInt(flags.value())) { } |
@@ -13845,7 +13845,7 @@ class RegExpKey : public HashTableKey { |
&& (flags_ == val->get(JSRegExp::kFlagsIndex)); |
} |
- uint32_t Hash() { return RegExpHash(string_, flags_); } |
+ uint32_t Hash() { return RegExpHash(*string_, flags_); } |
Object* AsObject(Heap* heap) { |
// Plain hash maps, which is where regexp keys are used, don't |
@@ -13864,7 +13864,7 @@ class RegExpKey : public HashTableKey { |
return string->Hash() + flags->value(); |
} |
- String* string_; |
+ Handle<String> string_; |
Smi* flags_; |
}; |
@@ -15048,7 +15048,7 @@ Handle<Object> CompilationCacheTable::LookupRegExp(Handle<String> src, |
JSRegExp::Flags flags) { |
Isolate* isolate = GetIsolate(); |
DisallowHeapAllocation no_allocation; |
- RegExpKey key(*src, flags); |
+ RegExpKey key(src, flags); |
int entry = FindEntry(&key); |
if (entry == kNotFound) return isolate->factory()->undefined_value(); |
return Handle<Object>(get(EntryToIndex(entry) + 1), isolate); |
@@ -15092,7 +15092,7 @@ Handle<CompilationCacheTable> CompilationCacheTable::PutEval( |
Handle<CompilationCacheTable> CompilationCacheTable::PutRegExp( |
Handle<CompilationCacheTable> cache, Handle<String> src, |
JSRegExp::Flags flags, Handle<FixedArray> value) { |
- RegExpKey key(*src, flags); |
+ RegExpKey key(src, flags); |
cache = EnsureCapacityFor(cache, 1, &key); |
int entry = cache->FindInsertionEntry(key.Hash()); |
// We store the value in the key slot, and compare the search key |