Revision: 3926
Author: [email protected]
Date: Mon Feb 22 06:14:33 2010
Log: Fix bugs in partial snapshots so they work on ARM simulator.
TBR=ager
Review URL: http://codereview.chromium.org/650142
http://code.google.com/p/v8/source/detail?r=3926

Modified:
 /branches/experimental/partial_snapshots/src/serialize.cc
 /branches/experimental/partial_snapshots/src/serialize.h
 /branches/experimental/partial_snapshots/test/cctest/test-assembler-arm.cc

=======================================
--- /branches/experimental/partial_snapshots/src/serialize.cc Thu Feb 4 00:02:41 2010 +++ /branches/experimental/partial_snapshots/src/serialize.cc Mon Feb 22 06:14:33 2010
@@ -892,12 +892,17 @@
 Serializer::Serializer(SnapshotByteSink* sink)
     : sink_(sink),
       current_root_index_(0),
-      external_reference_encoder_(NULL),
+      external_reference_encoder_(new ExternalReferenceEncoder),
       large_object_total_(0) {
   for (int i = 0; i <= LAST_SPACE; i++) {
     fullness_[i] = 0;
   }
 }
+
+
+Serializer::~Serializer() {
+  delete external_reference_encoder_;
+}


 void StartupSerializer::SerializeStrongReferences() {
@@ -906,22 +911,17 @@
   // No active or weak handles.
   CHECK(HandleScopeImplementer::instance()->blocks()->is_empty());
   CHECK_EQ(0, GlobalHandles::NumberOfWeakHandles());
-  CHECK_EQ(NULL, external_reference_encoder_);
   // We don't support serializing installed extensions.
   for (RegisteredExtension* ext = RegisteredExtension::first_extension();
        ext != NULL;
        ext = ext->next()) {
     CHECK_NE(v8::INSTALLED, ext->state());
   }
-  external_reference_encoder_ = new ExternalReferenceEncoder();
   Heap::IterateStrongRoots(this, VISIT_ONLY_STRONG);
-  delete external_reference_encoder_;
-  external_reference_encoder_ = NULL;
 }


 void PartialSerializer::Serialize(Object** object) {
-  external_reference_encoder_ = new ExternalReferenceEncoder();
   this->VisitPointer(object);

// After we have done the partial serialization the partial snapshot cache
@@ -935,9 +935,6 @@
     startup_serializer_->VisitPointer(&partial_snapshot_cache_[index]);
   }
   partial_snapshot_cache_length_ = kPartialSnapshotCacheCapacity;
-
-  delete external_reference_encoder_;
-  external_reference_encoder_ = NULL;
 }


=======================================
--- /branches/experimental/partial_snapshots/src/serialize.h Fri Feb 12 06:05:46 2010 +++ /branches/experimental/partial_snapshots/src/serialize.h Mon Feb 22 06:14:33 2010
@@ -369,6 +369,7 @@
 class Serializer : public SerializerDeserializer {
  public:
   explicit Serializer(SnapshotByteSink* sink);
+  ~Serializer();
   void VisitPointers(Object** start, Object** end);
// You can call this after serialization to find out how much space was used
   // in each space.
=======================================
--- /branches/experimental/partial_snapshots/test/cctest/test-assembler-arm.cc Mon Jan 25 07:17:58 2010 +++ /branches/experimental/partial_snapshots/test/cctest/test-assembler-arm.cc Mon Feb 22 06:14:33 2010
@@ -47,9 +47,6 @@

// The test framework does not accept flags on the command line, so we set them
 static void InitializeVM() {
-  // disable compilation of natives by specifying an empty natives file
-  FLAG_natives_file = "";
-
   // enable generation of comments
   FLAG_debug_code = true;

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to