From 25421c9cdec60ae8d74083a87db839e8704d0ad6 Mon Sep 17 00:00:00 2001 From: "kasperl@chromium.org" Date: Thu, 30 Oct 2008 14:30:25 +0000 Subject: [PATCH] Ignore result of calling Heap::CollectGarbage and continue 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 | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/heap-inl.h b/src/heap-inl.h index b54ef3acd..4fd9a4ecd 100644 --- a/src/heap-inl.h +++ b/src/heap-inl.h @@ -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; \ -- 2.34.1