Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 0e455508456d7b23465fa893194b51993e316c78..e764e39fcc5a83c2ed2a57629285b15ec3f1263c 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -2060,6 +2060,23 @@ void ExternalFloatArray::set(int index, float value) { |
ptr[index] = value; |
} |
+inline Scavenger Map::scavenger() { |
+ Scavenger callback = reinterpret_cast<Scavenger>( |
+ READ_INTPTR_FIELD(this, kIterateBodyCallbackOffset)); |
+ |
+ ASSERT(callback == Heap::GetScavenger(instance_type(), |
+ instance_size())); |
+ |
+ return callback; |
+} |
+ |
+inline void Map::set_scavenger(Scavenger callback) { |
+ ASSERT(!reinterpret_cast<Object*>( |
+ reinterpret_cast<intptr_t>(callback))->IsHeapObject()); |
+ WRITE_INTPTR_FIELD(this, |
+ kIterateBodyCallbackOffset, |
+ reinterpret_cast<intptr_t>(callback)); |
+} |
int Map::instance_size() { |
return READ_BYTE_FIELD(this, kInstanceSizeOffset) << kPointerSizeLog2; |