Chromium Code Reviews| Index: src/objects.cc |
| diff --git a/src/objects.cc b/src/objects.cc |
| index 4412e76527210855e43665765198fca82cad6d0f..f3af6fca55242ff1d4221b526b9e34b942c69e27 100644 |
| --- a/src/objects.cc |
| +++ b/src/objects.cc |
| @@ -6844,28 +6844,16 @@ MaybeObject* Map::CopyReplaceDescriptors(DescriptorArray* descriptors, |
| Handle<Map> Map::CopyInstallDescriptors(Handle<Map> map, |
| int new_descriptor, |
| Handle<DescriptorArray> descriptors) { |
| - CALL_HEAP_FUNCTION(map->GetIsolate(), |
| - map->CopyInstallDescriptors(new_descriptor, *descriptors), |
| - Map); |
| -} |
| - |
| - |
| -// Since this method is used to rewrite an existing transition tree, it can |
| -// always insert transitions without checking. |
|
Michael Starzinger
2013/10/23 08:59:05
nit: Let's preserve this comment above the handlif
rafaelw
2013/10/23 20:09:51
Woops. Good catch. done.
On 2013/10/23 08:59:05,
|
| -MaybeObject* Map::CopyInstallDescriptors(int new_descriptor, |
| - DescriptorArray* descriptors) { |
| ASSERT(descriptors->IsSortedNoDuplicates()); |
| - Map* result; |
| - MaybeObject* maybe_result = CopyDropDescriptors(); |
| - if (!maybe_result->To(&result)) return maybe_result; |
| + Handle<Map> result = Map::CopyDropDescriptors(map); |
| - result->InitializeDescriptors(descriptors); |
| + result->InitializeDescriptors(*descriptors); |
| result->SetNumberOfOwnDescriptors(new_descriptor + 1); |
| - int unused_property_fields = this->unused_property_fields(); |
| + int unused_property_fields = map->unused_property_fields(); |
| if (descriptors->GetDetails(new_descriptor).type() == FIELD) { |
| - unused_property_fields = this->unused_property_fields() - 1; |
| + unused_property_fields = map->unused_property_fields() - 1; |
| if (unused_property_fields < 0) { |
| unused_property_fields += JSObject::kFieldsAdded; |
| } |
| @@ -6874,14 +6862,12 @@ MaybeObject* Map::CopyInstallDescriptors(int new_descriptor, |
| result->set_unused_property_fields(unused_property_fields); |
| result->set_owns_descriptors(false); |
| - Name* name = descriptors->GetKey(new_descriptor); |
| - TransitionArray* transitions; |
| - MaybeObject* maybe_transitions = |
| - AddTransition(name, result, SIMPLE_TRANSITION); |
| - if (!maybe_transitions->To(&transitions)) return maybe_transitions; |
| + Handle<Name> name = handle(descriptors->GetKey(new_descriptor)); |
| + Handle<TransitionArray> transitions = Map::AddTransition(map, name, result, |
| + SIMPLE_TRANSITION); |
| - set_transitions(transitions); |
| - result->SetBackPointer(this); |
| + map->set_transitions(*transitions); |
| + result->SetBackPointer(*map); |
| return result; |
| } |