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