Index: src/x64/assembler-x64-inl.h |
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h |
index f7b87ec041b079f18d947bb816179b82e4ea018d..ab387d6d0a00c6e326e618b60bdacd97ad947e86 100644 |
--- a/src/x64/assembler-x64-inl.h |
+++ b/src/x64/assembler-x64-inl.h |
@@ -224,7 +224,9 @@ Address RelocInfo::target_address() { |
Address RelocInfo::target_address_address() { |
- ASSERT(IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY); |
+ ASSERT(IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY |
+ || rmode_ == EMBEDDED_OBJECT |
+ || rmode_ == EXTERNAL_REFERENCE); |
return reinterpret_cast<Address>(pc_); |
} |
@@ -399,7 +401,7 @@ void RelocInfo::Visit(ObjectVisitor* visitor) { |
} else if (mode == RelocInfo::GLOBAL_PROPERTY_CELL) { |
visitor->VisitGlobalPropertyCell(this); |
} else if (mode == RelocInfo::EXTERNAL_REFERENCE) { |
- visitor->VisitExternalReference(target_reference_address()); |
+ visitor->VisitExternalReference(this); |
CPU::FlushICache(pc_, sizeof(Address)); |
#ifdef ENABLE_DEBUGGER_SUPPORT |
// TODO(isolates): Get a cached isolate below. |
@@ -427,7 +429,7 @@ void RelocInfo::Visit(Heap* heap) { |
} else if (mode == RelocInfo::GLOBAL_PROPERTY_CELL) { |
StaticVisitor::VisitGlobalPropertyCell(heap, this); |
} else if (mode == RelocInfo::EXTERNAL_REFERENCE) { |
- StaticVisitor::VisitExternalReference(target_reference_address()); |
+ StaticVisitor::VisitExternalReference(this); |
CPU::FlushICache(pc_, sizeof(Address)); |
#ifdef ENABLE_DEBUGGER_SUPPORT |
} else if (heap->isolate()->debug()->has_break_points() && |