| Index: src/serialize.h
|
| diff --git a/src/serialize.h b/src/serialize.h
|
| index 020a744fc0ea3f8e78acb9ce3fbfb36027dd0861..47627ac2dd566380f2a8c817d72bb7ee4e86ae71 100644
|
| --- a/src/serialize.h
|
| +++ b/src/serialize.h
|
| @@ -339,10 +339,6 @@ class Deserializer: public SerializerDeserializer {
|
| private:
|
| virtual void VisitPointers(Object** start, Object** end);
|
|
|
| - virtual void VisitExternalReferences(Address* start, Address* end) {
|
| - UNREACHABLE();
|
| - }
|
| -
|
| virtual void VisitRuntimeEntry(RelocInfo* rinfo) {
|
| UNREACHABLE();
|
| }
|
| @@ -366,6 +362,10 @@ class Deserializer: public SerializerDeserializer {
|
| Address Allocate(int space_index, int size) {
|
| Address address = high_water_[space_index];
|
| high_water_[space_index] = address + size;
|
| + HeapProfiler* profiler = isolate_->heap_profiler();
|
| + if (profiler->is_tracking_allocations()) {
|
| + profiler->NewObjectEvent(address, size);
|
| + }
|
| return address;
|
| }
|
|
|
| @@ -517,7 +517,7 @@ class Serializer : public SerializerDeserializer {
|
| void Serialize();
|
| void VisitPointers(Object** start, Object** end);
|
| void VisitEmbeddedPointer(RelocInfo* target);
|
| - void VisitExternalReferences(Address* start, Address* end);
|
| + void VisitExternalReference(Address* p);
|
| void VisitExternalReference(RelocInfo* rinfo);
|
| void VisitCodeTarget(RelocInfo* target);
|
| void VisitCodeEntry(Address entry_address);
|
| @@ -569,6 +569,10 @@ class Serializer : public SerializerDeserializer {
|
|
|
| int SpaceAreaSize(int space);
|
|
|
| + // Some roots should not be serialized, because their actual value depends on
|
| + // absolute addresses and they are reset after deserialization, anyway.
|
| + bool ShouldBeSkipped(Object** current);
|
| +
|
| Isolate* isolate_;
|
| // Keep track of the fullness of each space in order to generate
|
| // relative addresses for back references.
|
|
|