Index: src/heap/incremental-marking.cc |
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
index 52d0ca4e51b6e297c04c94bfb686116722d32bba..a0243aa9cc92a03e8bf05ba12fca807cf38639e9 100644 |
--- a/src/heap/incremental-marking.cc |
+++ b/src/heap/incremental-marking.cc |
@@ -91,6 +91,18 @@ void IncrementalMarking::RecordWriteFromCode(HeapObject* obj, Object** slot, |
marking->RecordWrite(obj, slot, *slot); |
} |
+// static |
+void IncrementalMarking::RecordWriteOfCodeEntryFromCode(JSFunction* host, |
+ Object** slot, |
+ Isolate* isolate) { |
+ DCHECK(host->IsJSFunction()); |
+ IncrementalMarking* marking = isolate->heap()->incremental_marking(); |
+ Code* value = Code::cast( |
+ Code::GetObjectFromEntryAddress(reinterpret_cast<Address>(slot))); |
+ // TODO(mvstanton): Verify that we only come in here when we _need_ to be |
+ // here, the slow case should be dealt with before calling into C. |
+ marking->RecordWriteOfCodeEntry(host, slot, value); |
+} |
void IncrementalMarking::RecordCodeTargetPatch(Code* host, Address pc, |
HeapObject* value) { |