Index: runtime/vm/raw_object.cc |
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc |
index 3e3d0f470dffa13a8ba9bb46f76a6614b8887672..d32b5abf8771f8d5bc1f9cb28092409c0f17534c 100644 |
--- a/runtime/vm/raw_object.cc |
+++ b/runtime/vm/raw_object.cc |
@@ -542,11 +542,8 @@ intptr_t RawCode::VisitCodePointers(RawCode* raw_obj, |
RawCode* obj = raw_obj->ptr(); |
intptr_t length = Code::PtrOffBits::decode(obj->state_bits_); |
-#if defined(TARGET_ARCH_IA32) |
- // On IA32 only we embed pointers to objects directly in the generated |
- // instructions. The variable porition of a Code object describes where to |
- // find those pointers for tracing. |
if (Code::AliveBit::decode(obj->state_bits_)) { |
+ // Also visit all the embedded pointers in the corresponding instructions. |
uword entry_point = reinterpret_cast<uword>(obj->instructions_->ptr()) + |
Instructions::HeaderSize(); |
for (intptr_t i = 0; i < length; i++) { |
@@ -556,12 +553,6 @@ intptr_t RawCode::VisitCodePointers(RawCode* raw_obj, |
} |
} |
return Code::InstanceSize(length); |
-#else |
- // On all other architectures, objects are referenced indirectly through |
- // either the ObjectPool or Thread. |
- ASSERT(length == 0); |
- return Code::InstanceSize(0); |
-#endif |
} |