Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(606)

Unified Diff: src/mark-compact.cc

Issue 11072014: Reverting sharing of descriptor arrays: (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Bump version Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/objects.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/mark-compact.cc
diff --git a/src/mark-compact.cc b/src/mark-compact.cc
index 7c03a49e8536a4ace1e0e4aaa73eddeb22031a08..a9a90bdf64d38d295383bc2731a56a1869476702 100644
--- a/src/mark-compact.cc
+++ b/src/mark-compact.cc
@@ -1548,8 +1548,7 @@ class MarkCompactMarkingVisitor::ObjectStatsTracker<
Map* map_obj = Map::cast(obj);
ASSERT(map->instance_type() == MAP_TYPE);
DescriptorArray* array = map_obj->instance_descriptors();
- if (map_obj->owns_descriptors() &&
- array != heap->empty_descriptor_array()) {
+ if (array != heap->empty_descriptor_array()) {
int fixed_array_size = array->Size();
heap->RecordObjectStats(FIXED_ARRAY_TYPE,
DESCRIPTOR_ARRAY_SUB_TYPE,
@@ -1943,10 +1942,10 @@ void Marker<T>::MarkTransitionArray(TransitionArray* transitions) {
if (!base_marker()->MarkObjectWithoutPush(transitions)) return;
Object** transitions_start = transitions->data_start();
- // We don't have to record the descriptors_pointer slot since the cell space
- // is not compacted.
- JSGlobalPropertyCell* descriptors_cell = transitions->descriptors_pointer();
- base_marker()->MarkObjectAndPush(descriptors_cell);
+ DescriptorArray* descriptors = transitions->descriptors();
+ base_marker()->MarkObjectAndPush(descriptors);
+ mark_compact_collector()->RecordSlot(
+ transitions_start, transitions->GetDescriptorsSlot(), descriptors);
if (transitions->HasPrototypeTransitions()) {
// Mark prototype transitions array but don't push it into marking stack.
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698