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

Side by Side Diff: src/objects.cc

Issue 27197002: Return descriptor ownership after TrimDescriptorArray to allow resharing of descriptor arrays (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Hoist set_owns_descriptors out of TrimDescriptorArray Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 9288 matching lines...) Expand 10 before | Expand all | Expand 10 after
9299 // TODO(verwaest) Should be an assert, otherwise back pointers are not 9299 // TODO(verwaest) Should be an assert, otherwise back pointers are not
9300 // properly cleared. 9300 // properly cleared.
9301 if (transition_index == t->number_of_transitions()) return; 9301 if (transition_index == t->number_of_transitions()) return;
9302 9302
9303 int number_of_own_descriptors = NumberOfOwnDescriptors(); 9303 int number_of_own_descriptors = NumberOfOwnDescriptors();
9304 9304
9305 if (descriptors_owner_died) { 9305 if (descriptors_owner_died) {
9306 if (number_of_own_descriptors > 0) { 9306 if (number_of_own_descriptors > 0) {
9307 TrimDescriptorArray(heap, this, descriptors, number_of_own_descriptors); 9307 TrimDescriptorArray(heap, this, descriptors, number_of_own_descriptors);
9308 ASSERT(descriptors->number_of_descriptors() == number_of_own_descriptors); 9308 ASSERT(descriptors->number_of_descriptors() == number_of_own_descriptors);
9309 map->set_owns_descriptors(true);
9309 } else { 9310 } else {
9310 ASSERT(descriptors == GetHeap()->empty_descriptor_array()); 9311 ASSERT(descriptors == GetHeap()->empty_descriptor_array());
9311 } 9312 }
9312 } 9313 }
9313 9314
9314 int trim = t->number_of_transitions() - transition_index; 9315 int trim = t->number_of_transitions() - transition_index;
9315 if (trim > 0) { 9316 if (trim > 0) {
9316 RightTrimFixedArray<FROM_GC>(heap, t, t->IsSimpleTransition() 9317 RightTrimFixedArray<FROM_GC>(heap, t, t->IsSimpleTransition()
9317 ? trim : trim * TransitionArray::kTransitionSize); 9318 ? trim : trim * TransitionArray::kTransitionSize);
9318 } 9319 }
(...skipping 6942 matching lines...) Expand 10 before | Expand all | Expand 10 after
16261 #define ERROR_MESSAGES_TEXTS(C, T) T, 16262 #define ERROR_MESSAGES_TEXTS(C, T) T,
16262 static const char* error_messages_[] = { 16263 static const char* error_messages_[] = {
16263 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) 16264 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)
16264 }; 16265 };
16265 #undef ERROR_MESSAGES_TEXTS 16266 #undef ERROR_MESSAGES_TEXTS
16266 return error_messages_[reason]; 16267 return error_messages_[reason];
16267 } 16268 }
16268 16269
16269 16270
16270 } } // namespace v8::internal 16271 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698