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; |
} |