Reviewers: Jakob,

Message:
As just discussed offline, this CL seems to be subsumed by Toon's upcoming CL,
so I'll simply close it...

Description:
Tiny cleanup of DescriptorArrays lookups

Nuked JSObject::LookupInDescriptor, it had only a single call site.
Removed copy-n-paste from Map::LookupInDescriptors.

[email protected]


Please review this at http://codereview.chromium.org/10693100/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/objects.h
  M src/objects.cc


Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index 57483177854d3928d838967bf9c8a98adc7f6a54..39aba0b2b85608fb4e746c4bbe849d9baaf0774c 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -2177,32 +2177,15 @@ MaybeObject* JSObject::SetPropertyViaPrototypes(
 }


-void JSObject::LookupInDescriptor(String* name, LookupResult* result) {
-  DescriptorArray* descriptors = map()->instance_descriptors();
-  int number = descriptors->SearchWithCache(name);
-  if (number != DescriptorArray::kNotFound) {
- result->DescriptorResult(this, descriptors->GetDetails(number), number);
-  } else {
-    result->NotFound();
-  }
-}
-
-
 void Map::LookupInDescriptors(JSObject* holder,
                               String* name,
                               LookupResult* result) {
   DescriptorArray* descriptors = instance_descriptors();
-  DescriptorLookupCache* cache =
-      GetHeap()->isolate()->descriptor_lookup_cache();
-  int number = cache->Lookup(descriptors, name);
-  if (number == DescriptorLookupCache::kAbsent) {
-    number = descriptors->Search(name);
-    cache->Update(descriptors, name, number);
-  }
-  if (number != DescriptorArray::kNotFound) {
- result->DescriptorResult(holder, descriptors->GetDetails(number), number);
-  } else {
+  int number = descriptors->SearchWithCache(name);
+  if (number == DescriptorArray::kNotFound) {
     result->NotFound();
+  } else {
+ result->DescriptorResult(holder, descriptors->GetDetails(number), number);
   }
 }

@@ -2418,7 +2401,7 @@ void JSObject::LocalLookupRealNamedProperty(String* name,
   }

   if (HasFastProperties()) {
-    LookupInDescriptor(name, result);
+    map()->LookupInDescriptors(this, name, result);
     if (result->IsFound()) {
       // A property, a map transition or a null descriptor was found.
       // We return all of these result types because
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index 274f1dccae9ec19980bea3be09cced6db9b4ac1c..5cf1430f5c137320eedad489f4ce0d52c71f5065 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -2212,7 +2212,6 @@ class JSObject: public JSReceiver {
       Object* getter,
       Object* setter,
       PropertyAttributes attributes);
-  void LookupInDescriptor(String* name, LookupResult* result);

   // Returns the hidden properties backing store object, currently
   // a StringDictionary, stored on this object.


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to