Reviewers: Vyacheslav Egorov,

Description:
Don't set the limit that triggers the next GC higher than the max
old space size.

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

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

Affected files:
  M     src/heap.h


Index: src/heap.h
===================================================================
--- src/heap.h  (revision 9888)
+++ src/heap.h  (working copy)
@@ -1254,7 +1254,8 @@
         Max(old_gen_size + old_gen_size / divisor, kMinimumPromotionLimit);
     limit += new_space_.Capacity();
     limit *= old_gen_limit_factor_;
-    return limit;
+ intptr_t halfway_to_the_max = (old_gen_size + max_old_generation_size_) / 2;
+    return Min(limit, halfway_to_the_max);
   }

   intptr_t OldGenAllocationLimit(intptr_t old_gen_size) {
@@ -1263,7 +1264,8 @@
Max(old_gen_size + old_gen_size / divisor, kMinimumAllocationLimit);
     limit += new_space_.Capacity();
     limit *= old_gen_limit_factor_;
-    return limit;
+ intptr_t halfway_to_the_max = (old_gen_size + max_old_generation_size_) / 2;
+    return Min(limit, halfway_to_the_max);
   }

   // Can be called when the embedding application is idle.


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

Reply via email to