int size = object_->Size();
Map* map = object_->map();
- SerializePrologue(Serializer::SpaceOfObject(object_), size, map);
+ AllocationSpace space =
+ MemoryChunk::FromAddress(object_->address())->owner()->identity();
+ SerializePrologue(space, size, map);
// Serialize the rest of the object.
CHECK_EQ(0, bytes_processed_so_far_);
}
-AllocationSpace Serializer::SpaceOfObject(HeapObject* object) {
- for (int i = FIRST_SPACE; i <= LAST_SPACE; i++) {
- AllocationSpace s = static_cast<AllocationSpace>(i);
- if (object->GetHeap()->InSpace(object, s)) {
- DCHECK(i < kNumberOfSpaces);
- return s;
- }
- }
- UNREACHABLE();
- return FIRST_SPACE;
-}
-
-
BackReference Serializer::AllocateLargeObject(int size) {
// Large objects are allocated one-by-one when deserializing. We do not
// have to keep track of multiple chunks.
bool BackReferenceIsAlreadyAllocated(BackReference back_reference);
// This will return the space for an object.
- static AllocationSpace SpaceOfObject(HeapObject* object);
BackReference AllocateLargeObject(int size);
BackReference Allocate(AllocationSpace space, int size);
int EncodeExternalReference(Address addr) {