Index: src/serialize.h |
=================================================================== |
--- src/serialize.h (revision 3603) |
+++ src/serialize.h (working copy) |
@@ -239,10 +239,16 @@ |
// Deserialize the snapshot into an empty heap. |
void Deserialize(); |
+ |
+ // Deserialize a single object and the objects reachable from it. |
+ void DeserializePartial(Object** root); |
+ |
#ifdef DEBUG |
virtual void Synchronize(const char* tag); |
#endif |
+ static void TearDown(); |
+ |
private: |
virtual void VisitPointers(Object** start, Object** end); |
@@ -267,7 +273,7 @@ |
List<Address> pages_[SerDes::kNumberOfSpaces]; |
SnapshotByteSource* source_; |
- ExternalReferenceDecoder* external_reference_decoder_; |
+ static ExternalReferenceDecoder* external_reference_decoder_; |
// This is the address of the next object that will be allocated in each |
// space. It is used to calculate the addresses of back-references. |
Address high_water_[LAST_SPACE + 1]; |
@@ -302,7 +308,7 @@ |
// You can call this after serialization to find out how much space was used |
// in each space. |
int CurrentAllocationAddress(int space) { |
- if (SpaceIsLarge(space)) space = LO_SPACE; |
+ if (SpaceIsLarge(space)) return large_object_total_; |
return fullness_[space]; |
} |
@@ -392,6 +398,7 @@ |
static bool serialization_enabled_; |
// Did we already make use of the fact that serialization was not enabled? |
static bool too_late_to_enable_now_; |
+ int large_object_total_; |
friend class ObjectSerializer; |
friend class Deserializer; |