Revision: 10452
Author: [email protected]
Date: Thu Jan 19 11:52:46 2012
Log: Merge r10451 from bleeding_edge to trunk.
Fix missing write-barrier for prototype transitions.
http://code.google.com/p/v8/source/detail?r=10452
Modified:
/trunk/src/mark-compact.cc
/trunk/src/version.cc
=======================================
--- /trunk/src/mark-compact.cc Thu Jan 19 07:36:35 2012
+++ /trunk/src/mark-compact.cc Thu Jan 19 11:52:46 2012
@@ -2304,18 +2304,24 @@
Object* prototype = prototype_transitions->get(proto_offset + i *
step);
Object* cached_map = prototype_transitions->get(map_offset + i *
step);
if (IsMarked(prototype) && IsMarked(cached_map)) {
+ int proto_index = proto_offset + new_number_of_transitions * step;
+ int map_index = map_offset + new_number_of_transitions * step;
if (new_number_of_transitions != i) {
prototype_transitions->set_unchecked(
heap_,
- proto_offset + new_number_of_transitions * step,
+ proto_index,
prototype,
UPDATE_WRITE_BARRIER);
prototype_transitions->set_unchecked(
heap_,
- map_offset + new_number_of_transitions * step,
+ map_index,
cached_map,
SKIP_WRITE_BARRIER);
}
+ Object** slot =
+ HeapObject::RawField(prototype_transitions,
+
FixedArray::OffsetOfElementAt(proto_index));
+ RecordSlot(slot, slot, prototype);
new_number_of_transitions++;
}
}
=======================================
--- /trunk/src/version.cc Thu Jan 19 07:36:35 2012
+++ /trunk/src/version.cc Thu Jan 19 11:52:46 2012
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 8
#define BUILD_NUMBER 7
-#define PATCH_LEVEL 0
+#define PATCH_LEVEL 1
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
#define IS_CANDIDATE_VERSION 0
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev