Get back the performance lost in context creation in 9744.
authorerik.corry@gmail.com <erik.corry@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 25 Oct 2011 11:02:29 +0000 (11:02 +0000)
committererik.corry@gmail.com <erik.corry@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 25 Oct 2011 11:02:29 +0000 (11:02 +0000)
Review URL: http://codereview.chromium.org/8332026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/serialize.cc

index a5f9917..ba7b2a5 100644 (file)
@@ -790,14 +790,14 @@ void Deserializer::ReadChunk(Object** current,
             ASSIGN_DEST_SPACE(space_number)                                    \
             ReadObject(space_number, dest_space, &new_object);                 \
           } else if (where == kRootArray) {                                    \
-            emit_write_barrier = true;                                         \
             int root_id = source_->GetInt();                                   \
             new_object = isolate->heap()->roots_array_start()[root_id];        \
+            emit_write_barrier = isolate->heap()->InNewSpace(new_object);      \
           } else if (where == kPartialSnapshotCache) {                         \
-            emit_write_barrier = true;                                         \
             int cache_index = source_->GetInt();                               \
             new_object = isolate->serialize_partial_snapshot_cache()           \
                 [cache_index];                                                 \
+            emit_write_barrier = isolate->heap()->InNewSpace(new_object);      \
           } else if (where == kExternalReference) {                            \
             int reference_id = source_->GetInt();                              \
             Address address = external_reference_decoder_->                    \