Version 3.15.7

Activated code aging by default.

Included more information in --prof log.

Removed eager sweeping for lazy swept spaces. Try to find in SlowAllocateRaw a bounded number of times a big enough memory slot. (issue 2194)

Performance and stability improvements on all platforms.

git-svn-id: http://v8.googlecode.com/svn/trunk@13101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/incremental-marking-inl.h b/src/incremental-marking-inl.h
index 8c64978..1c30383 100644
--- a/src/incremental-marking-inl.h
+++ b/src/incremental-marking-inl.h
@@ -44,8 +44,12 @@
     if (Marking::IsBlack(obj_bit)) {
       MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address());
       if (chunk->IsFlagSet(MemoryChunk::HAS_PROGRESS_BAR)) {
-        WhiteToGreyAndPush(value_heap_obj, value_bit);
-        RestartIfNotMarking();
+        if (chunk->IsLeftOfProgressBar(slot)) {
+          WhiteToGreyAndPush(value_heap_obj, value_bit);
+          RestartIfNotMarking();
+        } else {
+          return false;
+        }
       } else {
         BlackToGreyAndUnshift(obj, obj_bit);
         RestartIfNotMarking();