diff options
Diffstat (limited to 'deps/v8/src/mark-compact.cc')
-rw-r--r-- | deps/v8/src/mark-compact.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/deps/v8/src/mark-compact.cc b/deps/v8/src/mark-compact.cc index cbd47a8763..a20245c385 100644 --- a/deps/v8/src/mark-compact.cc +++ b/deps/v8/src/mark-compact.cc @@ -282,8 +282,6 @@ class MarkingVisitor : public ObjectVisitor { rinfo->IsCallInstruction()); HeapObject* code = Code::GetCodeFromTargetAddress(rinfo->call_address()); MarkCompactCollector::MarkObject(code); - // When compacting we convert the call to a real object pointer. - if (IsCompacting()) rinfo->set_call_object(code); } private: @@ -1383,6 +1381,14 @@ class UpdatingVisitor: public ObjectVisitor { reinterpret_cast<Code*>(target)->instruction_start()); } + void VisitDebugTarget(RelocInfo* rinfo) { + ASSERT(RelocInfo::IsJSReturn(rinfo->rmode()) && rinfo->IsCallInstruction()); + Object* target = Code::GetCodeFromTargetAddress(rinfo->call_address()); + VisitPointer(&target); + rinfo->set_call_address( + reinterpret_cast<Code*>(target)->instruction_start()); + } + private: void UpdatePointer(Object** p) { if (!(*p)->IsHeapObject()) return; |