Reviewers: Vitaly,

Description:
Improves splay.js by 7%.

Please review this at http://codereview.chromium.org/3382007/show

Affected files:
  M src/heap.cc


Index: src/heap.cc
diff --git a/src/heap.cc b/src/heap.cc
index f140f8aa65d6ec9765aad55ef780ba0a3b4a563a..3d64f330d4093f901dd53c57758ccd94296ac9b0 100644
--- a/src/heap.cc
+++ b/src/heap.cc
@@ -816,6 +816,8 @@ Object* Heap::FindCodeObject(Address a) {
 // Helper class for copying HeapObjects
 class ScavengeVisitor: public ObjectVisitor {
  public:
+  ScavengeVisitor(Heap* heap) : heap_(heap) {}
+
   void VisitPointer(Object** p) { ScavengePointer(p); }

   void VisitPointers(Object** start, Object** end) {
@@ -826,10 +828,11 @@ class ScavengeVisitor: public ObjectVisitor {
  private:
   void ScavengePointer(Object** p) {
     Object* object = *p;
-    if (!HEAP->InNewSpace(object)) return;
+    if (!heap_->InNewSpace(object)) return;
     Heap::ScavengeObject(reinterpret_cast<HeapObject**>(p),
                          reinterpret_cast<HeapObject*>(object));
   }
+  Heap* heap_;
 };


@@ -934,7 +937,7 @@ void Heap::Scavenge() {
   promotion_queue_.Initialize(new_space_.ToSpaceHigh());

   is_safe_to_read_maps_ = false;
-  ScavengeVisitor scavenge_visitor;
+  ScavengeVisitor scavenge_visitor(this);
   // Copy roots.
   IterateRoots(&scavenge_visitor, VISIT_ALL_IN_SCAVENGE);



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

Reply via email to