Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index bdd06b40fc6fb313a73a308b735908507a28d854..afb1f488b14ebc55d3c4b1211654035ae4c446dd 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -16169,7 +16169,10 @@ Handle<WeakHashTable> WeakHashTable::Put(Handle<WeakHashTable> table, |
int entry = table->FindEntry(key); |
// Key is already in table, just overwrite value. |
if (entry != kNotFound) { |
- table->set(EntryToValueIndex(entry), *value); |
+ // TODO(ulan): Skipping write barrier is a temporary solution to avoid |
+ // memory leaks. Remove this once we have special visitor for weak fixed |
+ // arrays. |
+ table->set(EntryToValueIndex(entry), *value, SKIP_WRITE_BARRIER); |
return table; |
} |
@@ -16185,8 +16188,11 @@ void WeakHashTable::AddEntry(int entry, |
Handle<Object> key, |
Handle<Object> value) { |
DisallowHeapAllocation no_allocation; |
- set(EntryToIndex(entry), *key); |
- set(EntryToValueIndex(entry), *value); |
+ // TODO(ulan): Skipping write barrier is a temporary solution to avoid |
+ // memory leaks. Remove this once we have special visitor for weak fixed |
+ // arrays. |
+ set(EntryToIndex(entry), *key, SKIP_WRITE_BARRIER); |
+ set(EntryToValueIndex(entry), *value, SKIP_WRITE_BARRIER); |
ElementAdded(); |
} |