Index: src/ia32/assembler-ia32-inl.h |
diff --git a/src/ia32/assembler-ia32-inl.h b/src/ia32/assembler-ia32-inl.h |
index 2e9fcb6c54d2c23859d5593db994f668c0dce08e..5f67077ad014cfdf0d9824c1f4865558272018b2 100644 |
--- a/src/ia32/assembler-ia32-inl.h |
+++ b/src/ia32/assembler-ia32-inl.h |
@@ -78,7 +78,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_); |
} |
@@ -224,7 +226,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. |
@@ -252,7 +254,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() && |