From a5da9320d2d196e456a20dd391e63b0c529818f3 Mon Sep 17 00:00:00 2001 From: "ulan@chromium.org" Date: Thu, 20 Oct 2011 16:39:26 +0000 Subject: [PATCH] Reset failure flag before retrying stub compilation. BUG= TEST= Review URL: http://codereview.chromium.org/8365003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/stub-cache.cc | 76 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/src/stub-cache.cc b/src/stub-cache.cc index 4a337ba..7c0f8ba 100644 --- a/src/stub-cache.cc +++ b/src/stub-cache.cc @@ -113,7 +113,8 @@ Handle LoadStubCompiler::CompileLoadNonexistent(Handle name, Handle object, Handle last) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadNonexistent(*name, *object, *last), + (set_failure(NULL), + CompileLoadNonexistent(*name, *object, *last)), Code); } @@ -156,7 +157,8 @@ Handle LoadStubCompiler::CompileLoadField(Handle object, int index, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadField(*object, *holder, index, *name), + (set_failure(NULL), + CompileLoadField(*object, *holder, index, *name)), Code); } @@ -186,7 +188,8 @@ Handle LoadStubCompiler::CompileLoadCallback( Handle holder, Handle callback) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadCallback(*name, *object, *holder, *callback), + (set_failure(NULL), + CompileLoadCallback(*name, *object, *holder, *callback)), Code); } @@ -216,7 +219,8 @@ Handle LoadStubCompiler::CompileLoadConstant(Handle object, Handle value, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadConstant(*object, *holder, *value, *name), + (set_failure(NULL), + CompileLoadConstant(*object, *holder, *value, *name)), Code); } @@ -245,7 +249,8 @@ Handle LoadStubCompiler::CompileLoadInterceptor(Handle object, Handle holder, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadInterceptor(*object, *holder, *name), + (set_failure(NULL), + CompileLoadInterceptor(*object, *holder, *name)), Code); } @@ -279,11 +284,9 @@ Handle LoadStubCompiler::CompileLoadGlobal( Handle name, bool is_dont_delete) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadGlobal(*object, - *holder, - *cell, - *name, - is_dont_delete), + (set_failure(NULL), + CompileLoadGlobal( + *object, *holder, *cell, *name, is_dont_delete)), Code); } Handle StubCache::ComputeLoadGlobal(Handle name, @@ -311,7 +314,8 @@ Handle KeyedLoadStubCompiler::CompileLoadField(Handle name, Handle holder, int index) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadField(*name, *object, *holder, index), + (set_failure(NULL), + CompileLoadField(*name, *object, *holder, index)), Code); } @@ -340,7 +344,8 @@ Handle KeyedLoadStubCompiler::CompileLoadConstant(Handle name, Handle holder, Handle value) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadConstant(*name, *object, *holder, *value), + (set_failure(NULL), + CompileLoadConstant(*name, *object, *holder, *value)), Code); } @@ -370,7 +375,8 @@ Handle KeyedLoadStubCompiler::CompileLoadInterceptor( Handle holder, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadInterceptor(*object, *holder, *name), + (set_failure(NULL), + CompileLoadInterceptor(*object, *holder, *name)), Code); } @@ -399,7 +405,8 @@ Handle KeyedLoadStubCompiler::CompileLoadCallback( Handle holder, Handle callback) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadCallback(*name, *object, *holder, *callback), + (set_failure(NULL), + CompileLoadCallback(*name, *object, *holder, *callback)), Code); } @@ -428,7 +435,8 @@ Handle StubCache::ComputeKeyedLoadCallback( Handle KeyedLoadStubCompiler::CompileLoadArrayLength( Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadArrayLength(*name), + (set_failure(NULL), + CompileLoadArrayLength(*name)), Code); } @@ -451,7 +459,8 @@ Handle StubCache::ComputeKeyedLoadArrayLength(Handle name, Handle KeyedLoadStubCompiler::CompileLoadStringLength( Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadStringLength(*name), + (set_failure(NULL), + CompileLoadStringLength(*name)), Code); } @@ -475,7 +484,8 @@ Handle StubCache::ComputeKeyedLoadStringLength(Handle name, Handle KeyedLoadStubCompiler::CompileLoadFunctionPrototype( Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileLoadFunctionPrototype(*name), + (set_failure(NULL), + CompileLoadFunctionPrototype(*name)), Code); } @@ -502,12 +512,12 @@ Handle StoreStubCompiler::CompileStoreField(Handle object, Handle transition, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileStoreField(*object, - index, - (transition.is_null() - ? NULL - : *transition), - *name), + (set_failure(NULL), + CompileStoreField( + *object, + index, + (transition.is_null() ? NULL : *transition), + *name)), Code); } @@ -611,7 +621,8 @@ Handle StoreStubCompiler::CompileStoreGlobal( Handle holder, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileStoreGlobal(*object, *holder, *name), + (set_failure(NULL), + CompileStoreGlobal(*object, *holder, *name)), Code); } @@ -639,7 +650,8 @@ Handle StoreStubCompiler::CompileStoreCallback( Handle callback, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileStoreCallback(*object, *callback, *name), + (set_failure(NULL), + CompileStoreCallback(*object, *callback, *name)), Code); } @@ -666,7 +678,8 @@ Handle StubCache::ComputeStoreCallback(Handle name, Handle StoreStubCompiler::CompileStoreInterceptor(Handle object, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileStoreInterceptor(*object, *name), + (set_failure(NULL), + CompileStoreInterceptor(*object, *name)), Code); } @@ -692,11 +705,12 @@ Handle KeyedStoreStubCompiler::CompileStoreField(Handle object, Handle transition, Handle name) { CALL_HEAP_FUNCTION(isolate(), - CompileStoreField(*object, index, - (transition.is_null() - ? NULL - : *transition), - *name), + (set_failure(NULL), + CompileStoreField( + *object, + index, + (transition.is_null() ? NULL : *transition), + *name)), Code); } -- 2.7.4