Revision: 7690
Author:   [email protected]
Date:     Wed Apr 27 04:30:13 2011
Log:      Avoid recording a write to cell space during deserialization.

Review URL: http://codereview.chromium.org/6880232
http://code.google.com/p/v8/source/detail?r=7690

Modified:
 /branches/experimental/gc/src/serialize.cc

=======================================
--- /branches/experimental/gc/src/serialize.cc  Sun Apr 24 04:36:08 2011
+++ /branches/experimental/gc/src/serialize.cc  Wed Apr 27 04:30:13 2011
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 the V8 project authors. All rights reserved.
+// Copyright 2011 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -805,8 +805,9 @@
if (where == kNewObject && how == kPlain && within == kStartOfObject) {\ ASSIGN_DEST_SPACE(space_number) \ ReadObject(space_number, dest_space, current); \ - emit_write_barrier = \ - (space_number == NEW_SPACE && source_space != NEW_SPACE); \ + emit_write_barrier = (space_number == NEW_SPACE && \ + source_space != NEW_SPACE && \ + source_space != CELL_SPACE); \ } else { \ Object* new_object = NULL; /* May not be a real Object pointer. */ \ if (where == kNewObject) { \
@@ -825,14 +826,16 @@
Decode(reference_id); \ new_object = reinterpret_cast<Object*>(address); \ } else if (where == kBackref) { \ - emit_write_barrier = \ - (space_number == NEW_SPACE && source_space != NEW_SPACE); \ + emit_write_barrier = (space_number == NEW_SPACE && \ + source_space != NEW_SPACE && \ + source_space != CELL_SPACE); \ new_object = GetAddressFromEnd(data & kSpaceMask); \ } else { \ ASSERT(where == kFromStart); \ if (offset_from_start == kUnknownOffsetFromStart) { \ - emit_write_barrier = \ - (space_number == NEW_SPACE && source_space != NEW_SPACE); \ + emit_write_barrier = (space_number == NEW_SPACE && \ + source_space != NEW_SPACE && \ + source_space != CELL_SPACE); \ new_object = GetAddressFromStart(data & kSpaceMask); \ } else { \ Address object_address = pages_[space_number][0] + \

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

Reply via email to