Reviewers: Michael Starzinger,

Message:
Please take a look.

Description:
Ignore soft heap limit when reserving space.

[email protected]


Please review this at https://chromiumcodereview.appspot.com/9605014/

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

Affected files:
  M src/heap.cc


Index: src/heap.cc
diff --git a/src/heap.cc b/src/heap.cc
index 82e0965e9f83dcfefc8327099041a7403b22e29c..ee7db98cccc7c577eca4aa48f5cc54cdfa7f1829 100644
--- a/src/heap.cc
+++ b/src/heap.cc
@@ -604,26 +604,31 @@ void Heap::ReserveSpace(
       gc_performed = true;
     }
     if (!old_pointer_space->ReserveSpace(pointer_space_size)) {
+      AlwaysAllocateScope ignore_soft_heap_limit_when_reserving_space;
       Heap::CollectGarbage(OLD_POINTER_SPACE,
"failed to reserve space in the old pointer space");
       gc_performed = true;
     }
     if (!(old_data_space->ReserveSpace(data_space_size))) {
+      AlwaysAllocateScope ignore_soft_heap_limit_when_reserving_space;
       Heap::CollectGarbage(OLD_DATA_SPACE,
"failed to reserve space in the old data space");
       gc_performed = true;
     }
     if (!(code_space->ReserveSpace(code_space_size))) {
+      AlwaysAllocateScope ignore_soft_heap_limit_when_reserving_space;
       Heap::CollectGarbage(CODE_SPACE,
                            "failed to reserve space in the code space");
       gc_performed = true;
     }
     if (!(map_space->ReserveSpace(map_space_size))) {
+      AlwaysAllocateScope ignore_soft_heap_limit_when_reserving_space;
       Heap::CollectGarbage(MAP_SPACE,
                            "failed to reserve space in the map space");
       gc_performed = true;
     }
     if (!(cell_space->ReserveSpace(cell_space_size))) {
+      AlwaysAllocateScope ignore_soft_heap_limit_when_reserving_space;
       Heap::CollectGarbage(CELL_SPACE,
                            "failed to reserve space in the cell space");
       gc_performed = true;
@@ -637,6 +642,7 @@ void Heap::ReserveSpace(
large_object_size += cell_space_size + map_space_size + code_space_size +
         data_space_size + pointer_space_size;
     if (!(lo_space->ReserveSpace(large_object_size))) {
+      AlwaysAllocateScope ignore_soft_heap_limit_when_reserving_space;
       Heap::CollectGarbage(LO_SPACE,
"failed to reserve space in the large object space");
       gc_performed = true;


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

Reply via email to