Revision: 3588
Author: [email protected]
Date: Tue Jan 12 11:36:09 2010
Log: Temporary backing out r3536 to see impact on DOM benchmarks.

[email protected]


http://code.google.com/p/v8/source/detail?r=3588

Modified:
 /branches/bleeding_edge/src/objects.cc
 /branches/bleeding_edge/src/objects.h

=======================================
--- /branches/bleeding_edge/src/objects.cc      Tue Jan 12 08:57:18 2010
+++ /branches/bleeding_edge/src/objects.cc      Tue Jan 12 11:36:09 2010
@@ -6845,7 +6845,6 @@
   Object* obj = Heap::AllocateHashTable(EntryToIndex(capacity));
   if (!obj->IsFailure()) {
     HashTable::cast(obj)->SetNumberOfElements(0);
-    HashTable::cast(obj)->SetNumberOfDeletedElements(0);
     HashTable::cast(obj)->SetCapacity(capacity);
   }
   return obj;
@@ -6873,12 +6872,8 @@
 Object* HashTable<Shape, Key>::EnsureCapacity(int n, Key key) {
   int capacity = Capacity();
   int nof = NumberOfElements() + n;
-  int nod = NumberOfDeletedElements();
-  // Return if:
-  //   50% is still free after adding n elements and
-  //   at most 50% of the free elements are deleted elements.
-  if ((nof + (nof >> 1) <= capacity) &&
-      (nod <= (capacity - nof) >> 1) ) return this;
+  // Make sure 50% is free
+  if (nof + (nof >> 1) <= capacity) return this;

   Object* obj = Allocate(nof * 2);
   if (obj->IsFailure()) return obj;
@@ -6905,7 +6900,6 @@
     }
   }
   table->SetNumberOfElements(NumberOfElements());
-  table->SetNumberOfDeletedElements(0);
   return table;
 }

@@ -7706,7 +7700,7 @@
   }

   // Update the number of elements.
-  ElementsRemoved(removed_entries);
+  SetNumberOfElements(NumberOfElements() - removed_entries);
 }


=======================================
--- /branches/bleeding_edge/src/objects.h       Fri Jan  8 01:54:11 2010
+++ /branches/bleeding_edge/src/objects.h       Tue Jan 12 11:36:09 2010
@@ -1896,11 +1896,6 @@
   int NumberOfElements() {
     return Smi::cast(get(kNumberOfElementsIndex))->value();
   }
-
-  // Returns the number of deleted elements in the hash table.
-  int NumberOfDeletedElements() {
-    return Smi::cast(get(kNumberOfDeletedElementsIndex))->value();
-  }

   // Returns the capacity of the hash table.
   int Capacity() {
@@ -1913,14 +1908,8 @@

   // ElementRemoved should be called whenever an element is removed from
   // a hash table.
-  void ElementRemoved() {
-    SetNumberOfElements(NumberOfElements() - 1);
-    SetNumberOfDeletedElements(NumberOfDeletedElements() + 1);
-  }
-  void ElementsRemoved(int n) {
-    SetNumberOfElements(NumberOfElements() - n);
-    SetNumberOfDeletedElements(NumberOfDeletedElements() + n);
-  }
+  void ElementRemoved() { SetNumberOfElements(NumberOfElements() - 1); }
+ void ElementsRemoved(int n) { SetNumberOfElements(NumberOfElements() - n); }

   // Returns a new HashTable object. Might return Failure.
   static Object* Allocate(int at_least_space_for);
@@ -1947,13 +1936,12 @@
   }

   static const int kNumberOfElementsIndex = 0;
-  static const int kNumberOfDeletedElementsIndex = 1;
-  static const int kCapacityIndex = 2;
-  static const int kPrefixStartIndex = 3;
-  static const int kElementsStartIndex =
+  static const int kCapacityIndex         = 1;
+  static const int kPrefixStartIndex      = 2;
+  static const int kElementsStartIndex    =
       kPrefixStartIndex + Shape::kPrefixSize;
-  static const int kEntrySize = Shape::kEntrySize;
-  static const int kElementsStartOffset =
+  static const int kEntrySize             = Shape::kEntrySize;
+  static const int kElementsStartOffset   =
       kHeaderSize + kElementsStartIndex * kPointerSize;

   // Constant used for denoting a absent entry.
@@ -1983,11 +1971,6 @@
   void SetNumberOfElements(int nof) {
     fast_set(this, kNumberOfElementsIndex, Smi::FromInt(nof));
   }
-
-  // Update the number of deleted elements in the hash table.
-  void SetNumberOfDeletedElements(int nod) {
-    fast_set(this, kNumberOfDeletedElementsIndex, Smi::FromInt(nod));
-  }

   // Sets the capacity of the hash table.
   void SetCapacity(int capacity) {
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to