Reviewers: Erik Corry,

Description:
Make AlwaysAllocateScope imply DisallowAllocationFailure.

[email protected]
TEST=cctest/test-api,cctest/test-heap (--gc-interval=100)


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

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

Affected files:
  M src/heap.h
  M test/cctest/test-heap.cc


Index: src/heap.h
diff --git a/src/heap.h b/src/heap.h
index af6207dc9a6e5f7e6d8b406cd539db430dcd8087..918e25efb5a98a3f84a2acd4090db364af93028c 100644
--- a/src/heap.h
+++ b/src/heap.h
@@ -2149,10 +2149,28 @@ class HeapStats {
 };


+#ifdef DEBUG
+class DisallowAllocationFailure {
+ public:
+  inline DisallowAllocationFailure();
+  inline ~DisallowAllocationFailure();
+
+ private:
+  bool old_state_;
+};
+#endif
+
+
 class AlwaysAllocateScope {
  public:
   inline AlwaysAllocateScope();
   inline ~AlwaysAllocateScope();
+
+#ifdef DEBUG
+ private:
+  // Implicitly disable artificial allocation failures.
+  DisallowAllocationFailure disallow_allocation_failure_;
+#endif
 };


@@ -2397,18 +2415,6 @@ class DescriptorLookupCache {
 };


-#ifdef DEBUG
-class DisallowAllocationFailure {
- public:
-  inline DisallowAllocationFailure();
-  inline ~DisallowAllocationFailure();
-
- private:
-  bool old_state_;
-};
-#endif
-
-
 // A helper class to document/test C++ scopes where we do not
 // expect a GC. Usage:
 //
Index: test/cctest/test-heap.cc
diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc
index daf45ad13edb08e2350c6f6aee6fb6945b4c56e4..22a382078675bca973eba71f84209696d1f75753 100644
--- a/test/cctest/test-heap.cc
+++ b/test/cctest/test-heap.cc
@@ -1268,6 +1268,7 @@ static void FillUpNewSpace(NewSpace* new_space) {
   // that the scavenger does not undo the filling.
   v8::HandleScope scope;
   AlwaysAllocateScope always_allocate;
+  LinearAllocationScope allocate_linearly;
   intptr_t available = new_space->EffectiveCapacity() - new_space->Size();
   intptr_t number_of_fillers = (available / FixedArray::SizeFor(32)) - 1;
   for (intptr_t i = 0; i < number_of_fillers; i++) {


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

Reply via email to