Ignore result of calling Heap::CollectGarbage and continue
authorkasperl@chromium.org <kasperl@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 30 Oct 2008 14:30:25 +0000 (14:30 +0000)
committerkasperl@chromium.org <kasperl@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 30 Oct 2008 14:30:25 +0000 (14:30 +0000)
to try the next allocation. This is consistent with how we
handle it when calling from JavaScript to C++.
Review URL: http://codereview.chromium.org/8916

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/heap-inl.h

index b54ef3a..4fd9a4e 100644 (file)
@@ -222,16 +222,12 @@ void Heap::ClearKeyedLookupCache() {
       v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_0");      \
     }                                                                     \
     if (!__object__->IsRetryAfterGC()) return RETURN_EMPTY;               \
-    if (!Heap::CollectGarbage(                                            \
-            Failure::cast(__object__)->requested(),                       \
-            Failure::cast(__object__)->allocation_space())) {             \
-      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_1");      \
-      return RETURN_EMPTY;                                                \
-    }                                                                     \
+    Heap::CollectGarbage(Failure::cast(__object__)->requested(),          \
+                         Failure::cast(__object__)->allocation_space());  \
     __object__ = FUNCTION_CALL;                                           \
     if (!__object__->IsFailure()) return RETURN_VALUE;                    \
     if (__object__->IsOutOfMemoryFailure()) {                             \
-      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_2");      \
+      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_1");      \
     }                                                                     \
     if (!__object__->IsRetryAfterGC()) return RETURN_EMPTY;               \
     Counters::gc_last_resort_from_handles.Increment();                    \
@@ -243,7 +239,7 @@ void Heap::ClearKeyedLookupCache() {
     if (!__object__->IsFailure()) return RETURN_VALUE;                    \
     if (__object__->IsOutOfMemoryFailure()) {                             \
       /* TODO(1181417): Fix this. */                                      \
-      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_3");      \
+      v8::internal::V8::FatalProcessOutOfMemory("CALL_AND_RETRY_2");      \
     }                                                                     \
     ASSERT(!__object__->IsRetryAfterGC());                                \
     return RETURN_EMPTY;                                                  \