From 675ac2660d0cd139fa10011edc351e02f2e3c7bc Mon Sep 17 00:00:00 2001 From: "dcarney@chromium.org" Date: Tue, 3 Sep 2013 06:57:16 +0000 Subject: [PATCH] thread isolate for files starting with 'b' and 'c' R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23729006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/codegen-arm.h | 2 +- src/arm/full-codegen-arm.cc | 2 +- src/builtins.cc | 3 +- src/builtins.h | 2 +- src/code-stubs-hydrogen.cc | 93 ++++++++++++++++++----------------- src/code-stubs.cc | 7 ++- src/code-stubs.h | 46 ++++++++--------- src/codegen.cc | 5 +- src/compiler.cc | 2 +- src/contexts.cc | 5 +- src/contexts.h | 4 +- src/counters.cc | 2 +- src/counters.h | 5 +- src/ia32/codegen-ia32.h | 2 +- src/ia32/full-codegen-ia32.cc | 2 +- src/isolate.cc | 2 +- src/v8-counters.cc | 14 +++--- src/x64/codegen-x64.h | 2 +- src/x64/full-codegen-x64.cc | 2 +- 19 files changed, 101 insertions(+), 101 deletions(-) diff --git a/src/arm/codegen-arm.h b/src/arm/codegen-arm.h index d9cc38725..54530d872 100644 --- a/src/arm/codegen-arm.h +++ b/src/arm/codegen-arm.h @@ -61,7 +61,7 @@ class CodeGenerator: public AstVisitor { // Print the code after compiling it. static void PrintCode(Handle code, CompilationInfo* info); - static bool ShouldGenerateLog(Expression* type); + static bool ShouldGenerateLog(Isolate* isolate, Expression* type); static void SetFunctionInfo(Handle fun, FunctionLiteral* lit, diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc index 2a0d1020a..28ec1a2a9 100644 --- a/src/arm/full-codegen-arm.cc +++ b/src/arm/full-codegen-arm.cc @@ -3312,7 +3312,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) { // 2 (array): Arguments to the format string. ZoneList* args = expr->arguments(); ASSERT_EQ(args->length(), 3); - if (CodeGenerator::ShouldGenerateLog(args->at(0))) { + if (CodeGenerator::ShouldGenerateLog(isolate(), args->at(0))) { VisitForStackValue(args->at(1)); VisitForStackValue(args->at(2)); __ CallRuntime(Runtime::kLog, 2); diff --git a/src/builtins.cc b/src/builtins.cc index f1ee0a4e7..fea503b01 100644 --- a/src/builtins.cc +++ b/src/builtins.cc @@ -1717,9 +1717,8 @@ void Builtins::InitBuiltinFunctionTable() { } -void Builtins::SetUp(bool create_heap_objects) { +void Builtins::SetUp(Isolate* isolate, bool create_heap_objects) { ASSERT(!initialized_); - Isolate* isolate = Isolate::Current(); Heap* heap = isolate->heap(); // Create a scope for the handles in the builtins. diff --git a/src/builtins.h b/src/builtins.h index a7c774a6a..b7be78565 100644 --- a/src/builtins.h +++ b/src/builtins.h @@ -292,7 +292,7 @@ class Builtins { // Generate all builtin code objects. Should be called once during // isolate initialization. - void SetUp(bool create_heap_objects); + void SetUp(Isolate* isolate, bool create_heap_objects); void TearDown(); // Garbage collection support. diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc index 35927f494..131fe31c8 100644 --- a/src/code-stubs-hydrogen.cc +++ b/src/code-stubs-hydrogen.cc @@ -217,8 +217,8 @@ bool CodeStubGraphBuilderBase::BuildGraph() { template class CodeStubGraphBuilder: public CodeStubGraphBuilderBase { public: - explicit CodeStubGraphBuilder(Stub* stub) - : CodeStubGraphBuilderBase(Isolate::Current(), stub) {} + explicit CodeStubGraphBuilder(Isolate* isolate, Stub* stub) + : CodeStubGraphBuilderBase(isolate, stub) {} protected: virtual HValue* BuildCodeStub() { @@ -285,8 +285,7 @@ Handle HydrogenCodeStub::GenerateLightweightMissCode(Isolate* isolate) { template -static Handle DoGenerateCode(Stub* stub) { - Isolate* isolate = Isolate::Current(); +static Handle DoGenerateCode(Isolate* isolate, Stub* stub) { CodeStub::Major major_key = static_cast(stub)->MajorKey(); CodeStubInterfaceDescriptor* descriptor = @@ -302,7 +301,7 @@ static Handle DoGenerateCode(Stub* stub) { ASSERT(descriptor->stack_parameter_count_ == NULL); return stub->GenerateLightweightMissCode(isolate); } - CodeStubGraphBuilder builder(stub); + CodeStubGraphBuilder builder(isolate, stub); LChunk* chunk = OptimizeGraph(builder.CreateGraph()); return chunk->Codegen(); } @@ -334,8 +333,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle ToNumberStub::GenerateCode() { - return DoGenerateCode(this); +Handle ToNumberStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -401,8 +400,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle FastCloneShallowArrayStub::GenerateCode() { - return DoGenerateCode(this); +Handle FastCloneShallowArrayStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -448,8 +447,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle FastCloneShallowObjectStub::GenerateCode() { - return DoGenerateCode(this); +Handle FastCloneShallowObjectStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -494,8 +493,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle CreateAllocationSiteStub::GenerateCode() { - return DoGenerateCode(this); +Handle CreateAllocationSiteStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -509,8 +508,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle KeyedLoadFastElementStub::GenerateCode() { - return DoGenerateCode(this); +Handle KeyedLoadFastElementStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -524,8 +523,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle LoadFieldStub::GenerateCode() { - return DoGenerateCode(this); +Handle LoadFieldStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -539,8 +538,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle KeyedLoadFieldStub::GenerateCode() { - return DoGenerateCode(this); +Handle KeyedLoadFieldStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -555,8 +554,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle KeyedStoreFastElementStub::GenerateCode() { - return DoGenerateCode(this); +Handle KeyedStoreFastElementStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -574,8 +573,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle TransitionElementsKindStub::GenerateCode() { - return DoGenerateCode(this); +Handle TransitionElementsKindStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } HValue* CodeStubGraphBuilderBase::BuildArrayConstructor( @@ -709,8 +708,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle ArrayNoArgumentConstructorStub::GenerateCode() { - return DoGenerateCode(this); +Handle ArrayNoArgumentConstructorStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -724,8 +723,9 @@ HValue* CodeStubGraphBuilder:: } -Handle ArraySingleArgumentConstructorStub::GenerateCode() { - return DoGenerateCode(this); +Handle ArraySingleArgumentConstructorStub::GenerateCode( + Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -738,8 +738,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle ArrayNArgumentsConstructorStub::GenerateCode() { - return DoGenerateCode(this); +Handle ArrayNArgumentsConstructorStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -751,8 +751,9 @@ HValue* CodeStubGraphBuilder:: } -Handle InternalArrayNoArgumentConstructorStub::GenerateCode() { - return DoGenerateCode(this); +Handle InternalArrayNoArgumentConstructorStub::GenerateCode( + Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -764,8 +765,9 @@ HValue* CodeStubGraphBuilder:: } -Handle InternalArraySingleArgumentConstructorStub::GenerateCode() { - return DoGenerateCode(this); +Handle InternalArraySingleArgumentConstructorStub::GenerateCode( + Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -777,8 +779,9 @@ HValue* CodeStubGraphBuilder:: } -Handle InternalArrayNArgumentsConstructorStub::GenerateCode() { - return DoGenerateCode(this); +Handle InternalArrayNArgumentsConstructorStub::GenerateCode( + Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -803,8 +806,8 @@ HValue* CodeStubGraphBuilder::BuildCodeInitializedStub() { } -Handle CompareNilICStub::GenerateCode() { - return DoGenerateCode(this); +Handle CompareNilICStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -822,8 +825,8 @@ HValue* CodeStubGraphBuilder::BuildCodeInitializedStub() { } -Handle ToBooleanStub::GenerateCode() { - return DoGenerateCode(this); +Handle ToBooleanStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -871,8 +874,8 @@ HValue* CodeStubGraphBuilder::BuildCodeInitializedStub() { } -Handle StoreGlobalStub::GenerateCode() { - return DoGenerateCode(this); +Handle StoreGlobalStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -906,8 +909,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle ElementsTransitionAndStoreStub::GenerateCode() { - return DoGenerateCode(this); +Handle ElementsTransitionAndStoreStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } @@ -1096,8 +1099,8 @@ HValue* CodeStubGraphBuilder::BuildCodeStub() { } -Handle FastNewClosureStub::GenerateCode() { - return DoGenerateCode(this); +Handle FastNewClosureStub::GenerateCode(Isolate* isolate) { + return DoGenerateCode(isolate, this); } diff --git a/src/code-stubs.cc b/src/code-stubs.cc index 01456ee18..601127550 100644 --- a/src/code-stubs.cc +++ b/src/code-stubs.cc @@ -46,7 +46,7 @@ CodeStubInterfaceDescriptor::CodeStubInterfaceDescriptor() function_mode_(NOT_JS_FUNCTION_STUB_MODE), register_params_(NULL), deoptimization_handler_(NULL), - miss_handler_(IC_Utility(IC::kUnreachable), Isolate::Current()), + miss_handler_(), has_miss_handler_(false) { } @@ -93,8 +93,7 @@ Handle CodeStub::GetCodeCopyFromTemplate(Isolate* isolate) { } -Handle PlatformCodeStub::GenerateCode() { - Isolate* isolate = Isolate::Current(); +Handle PlatformCodeStub::GenerateCode(Isolate* isolate) { Factory* factory = isolate->factory(); // Generate the new code. @@ -144,7 +143,7 @@ Handle CodeStub::GetCode(Isolate* isolate) { { HandleScope scope(isolate); - Handle new_object = GenerateCode(); + Handle new_object = GenerateCode(isolate); new_object->set_major_key(MajorKey()); FinishCode(new_object); RecordCodeGeneration(*new_object, isolate); diff --git a/src/code-stubs.h b/src/code-stubs.h index 7c70583a7..4fe4e074c 100644 --- a/src/code-stubs.h +++ b/src/code-stubs.h @@ -205,7 +205,7 @@ class CodeStub BASE_EMBEDDED { static bool CanUseFPRegisters(); // Generates the assembler code for the stub. - virtual Handle GenerateCode() = 0; + virtual Handle GenerateCode(Isolate* isolate) = 0; // Returns whether the code generated for this stub needs to be allocated as @@ -263,7 +263,7 @@ class CodeStub BASE_EMBEDDED { class PlatformCodeStub : public CodeStub { public: // Retrieve the code for the stub. Generate the code if needed. - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual Code::Kind GetCodeKind() const { return Code::STUB; } @@ -353,7 +353,7 @@ class HydrogenCodeStub : public CodeStub { CodeStubInterfaceDescriptor* descriptor) = 0; // Retrieve the code for the stub. Generate the code if needed. - virtual Handle GenerateCode() = 0; + virtual Handle GenerateCode(Isolate* isolate) = 0; virtual int NotMissMinorKey() = 0; @@ -453,7 +453,7 @@ class ToNumberStub: public HydrogenCodeStub { public: ToNumberStub() { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -471,7 +471,7 @@ class FastNewClosureStub : public HydrogenCodeStub { : language_mode_(language_mode), is_generator_(is_generator) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -539,7 +539,7 @@ class StoreGlobalStub : public HydrogenCodeStub { IsConstantBits::encode(is_constant); } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -621,7 +621,7 @@ class FastCloneShallowArrayStub : public HydrogenCodeStub { return LAST_ELEMENTS_KIND; } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -661,7 +661,7 @@ class FastCloneShallowObjectStub : public HydrogenCodeStub { int length() const { return length_; } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -681,7 +681,7 @@ class CreateAllocationSiteStub : public HydrogenCodeStub { public: explicit CreateAllocationSiteStub() { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual bool IsPregenerated() { return true; } @@ -898,7 +898,7 @@ class LoadFieldStub: public HandlerStub { Initialize(Code::LOAD_IC, inobject, index, representation); } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -967,7 +967,7 @@ class KeyedLoadFieldStub: public LoadFieldStub { Isolate* isolate, CodeStubInterfaceDescriptor* descriptor); - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); private: virtual CodeStub::Major MajorKey() { return KeyedLoadField; } @@ -1238,7 +1238,7 @@ class CompareNilICStub : public HydrogenCodeStub { virtual Code::Kind GetCodeKind() const { return Code::COMPARE_NIL_IC; } - Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual Code::ExtraICState GetExtraICState() { return NilValueField::encode(nil_value_) | @@ -1763,7 +1763,7 @@ class KeyedLoadFastElementStub : public HydrogenCodeStub { return ElementsKindBits::decode(bit_field_); } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -1803,7 +1803,7 @@ class KeyedStoreFastElementStub : public HydrogenCodeStub { return StoreModeBits::decode(bit_field_); } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -1838,7 +1838,7 @@ class TransitionElementsKindStub : public HydrogenCodeStub { return ToKindBits::decode(bit_field_); } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -1934,7 +1934,7 @@ class ArrayNoArgumentConstructorStub : public ArrayConstructorStubBase { : ArrayConstructorStubBase(kind, context_mode, override_mode) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -1956,7 +1956,7 @@ class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase { : ArrayConstructorStubBase(kind, context_mode, override_mode) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -1978,7 +1978,7 @@ class ArrayNArgumentsConstructorStub : public ArrayConstructorStubBase { : ArrayConstructorStubBase(kind, context_mode, override_mode) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -2021,7 +2021,7 @@ class InternalArrayNoArgumentConstructorStub : public explicit InternalArrayNoArgumentConstructorStub(ElementsKind kind) : InternalArrayConstructorStubBase(kind) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -2040,7 +2040,7 @@ class InternalArraySingleArgumentConstructorStub : public explicit InternalArraySingleArgumentConstructorStub(ElementsKind kind) : InternalArrayConstructorStubBase(kind) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -2059,7 +2059,7 @@ class InternalArrayNArgumentsConstructorStub : public explicit InternalArrayNArgumentsConstructorStub(ElementsKind kind) : InternalArrayConstructorStubBase(kind) { } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, @@ -2148,7 +2148,7 @@ class ToBooleanStub: public HydrogenCodeStub { bool UpdateStatus(Handle object); Types GetTypes() { return types_; } - virtual Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); virtual void InitializeInterfaceDescriptor( Isolate* isolate, CodeStubInterfaceDescriptor* descriptor); @@ -2208,7 +2208,7 @@ class ElementsTransitionAndStoreStub : public HydrogenCodeStub { bool is_jsarray() const { return is_jsarray_; } KeyedAccessStoreMode store_mode() const { return store_mode_; } - Handle GenerateCode(); + virtual Handle GenerateCode(Isolate* isolate); void InitializeInterfaceDescriptor( Isolate* isolate, diff --git a/src/codegen.cc b/src/codegen.cc index 6ec375105..d33c7f06b 100644 --- a/src/codegen.cc +++ b/src/codegen.cc @@ -124,7 +124,7 @@ Handle CodeGenerator::MakeCodeEpilogue(MacroAssembler* masm, void CodeGenerator::PrintCode(Handle code, CompilationInfo* info) { #ifdef ENABLE_DISASSEMBLER AllowDeferredHandleDereference allow_deference_for_print_code; - bool print_code = Isolate::Current()->bootstrapper()->IsActive() + bool print_code = info->isolate()->bootstrapper()->IsActive() ? FLAG_print_builtin_code : (FLAG_print_code || (info->IsStub() && FLAG_print_code_stubs) || @@ -171,9 +171,8 @@ void CodeGenerator::PrintCode(Handle code, CompilationInfo* info) { } -bool CodeGenerator::ShouldGenerateLog(Expression* type) { +bool CodeGenerator::ShouldGenerateLog(Isolate* isolate, Expression* type) { ASSERT(type != NULL); - Isolate* isolate = Isolate::Current(); if (!isolate->logger()->is_logging() && !isolate->cpu_profiler()->is_profiling()) { return false; diff --git a/src/compiler.cc b/src/compiler.cc index 1fba20fa5..c791cb5df 100644 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -845,7 +845,7 @@ static bool InstallFullCode(CompilationInfo* info) { // version of the function right away - unless the debugger is // active as it makes no sense to compile optimized code then. if (FLAG_always_opt && - !Isolate::Current()->DebuggerHasBreakPoints()) { + !info->isolate()->DebuggerHasBreakPoints()) { CompilationInfoWithZone optimized(function); optimized.SetOptimizing(BailoutId::None()); return Compiler::CompileLazy(&optimized); diff --git a/src/contexts.cc b/src/contexts.cc index 0fddfdf50..5981fd669 100644 --- a/src/contexts.cc +++ b/src/contexts.cc @@ -74,7 +74,7 @@ Context* Context::native_context() { // During bootstrapping, the global object might not be set and we // have to search the context chain to find the native context. - ASSERT(Isolate::Current()->bootstrapper()->IsActive()); + ASSERT(this->GetIsolate()->bootstrapper()->IsActive()); Context* current = this; while (!current->IsNativeContext()) { JSFunction* closure = JSFunction::cast(current->closure()); @@ -352,10 +352,9 @@ bool Context::IsBootstrappingOrValidParentContext( } -bool Context::IsBootstrappingOrGlobalObject(Object* object) { +bool Context::IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object) { // During bootstrapping we allow all objects to pass as global // objects. This is necessary to fix circular dependencies. - Isolate* isolate = Isolate::Current(); return isolate->heap()->gc_state() != Heap::NOT_IN_GC || isolate->bootstrapper()->IsActive() || object->IsGlobalObject(); diff --git a/src/contexts.h b/src/contexts.h index fdf6d27ef..88c3cd981 100644 --- a/src/contexts.h +++ b/src/contexts.h @@ -370,7 +370,7 @@ class Context: public FixedArray { GlobalObject* global_object() { Object* result = get(GLOBAL_OBJECT_INDEX); - ASSERT(IsBootstrappingOrGlobalObject(result)); + ASSERT(IsBootstrappingOrGlobalObject(this->GetIsolate(), result)); return reinterpret_cast(result); } void set_global_object(GlobalObject* object) { @@ -508,7 +508,7 @@ class Context: public FixedArray { #ifdef DEBUG // Bootstrapping-aware type checks. static bool IsBootstrappingOrValidParentContext(Object* object, Context* kid); - static bool IsBootstrappingOrGlobalObject(Object* object); + static bool IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object); #endif STATIC_CHECK(kHeaderSize == Internals::kContextHeaderSize); diff --git a/src/counters.cc b/src/counters.cc index e2530a8fc..e0a6a60a0 100644 --- a/src/counters.cc +++ b/src/counters.cc @@ -41,7 +41,7 @@ StatsTable::StatsTable() int* StatsCounter::FindLocationInStatsTable() const { - return Isolate::Current()->stats_table()->FindLocation(name_); + return isolate_->stats_table()->FindLocation(name_); } diff --git a/src/counters.h b/src/counters.h index 8cfe6c525..93911d721 100644 --- a/src/counters.h +++ b/src/counters.h @@ -116,8 +116,8 @@ class StatsTable { class StatsCounter { public: StatsCounter() { } - explicit StatsCounter(const char* name) - : name_(name), ptr_(NULL), lookup_done_(false) { } + explicit StatsCounter(Isolate* isolate, const char* name) + : isolate_(isolate), name_(name), ptr_(NULL), lookup_done_(false) { } // Sets the counter to a specific value. void Set(int value) { @@ -175,6 +175,7 @@ class StatsCounter { private: int* FindLocationInStatsTable() const; + Isolate* isolate_; const char* name_; int* ptr_; bool lookup_done_; diff --git a/src/ia32/codegen-ia32.h b/src/ia32/codegen-ia32.h index 6db381e47..6a207ca9b 100644 --- a/src/ia32/codegen-ia32.h +++ b/src/ia32/codegen-ia32.h @@ -53,7 +53,7 @@ class CodeGenerator { // Print the code after compiling it. static void PrintCode(Handle code, CompilationInfo* info); - static bool ShouldGenerateLog(Expression* type); + static bool ShouldGenerateLog(Isolate* isolate, Expression* type); static bool RecordPositions(MacroAssembler* masm, int pos, diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc index 09966c979..db82b3997 100644 --- a/src/ia32/full-codegen-ia32.cc +++ b/src/ia32/full-codegen-ia32.cc @@ -3266,7 +3266,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) { // 2 (array): Arguments to the format string. ZoneList* args = expr->arguments(); ASSERT_EQ(args->length(), 3); - if (CodeGenerator::ShouldGenerateLog(args->at(0))) { + if (CodeGenerator::ShouldGenerateLog(isolate(), args->at(0))) { VisitForStackValue(args->at(1)); VisitForStackValue(args->at(2)); __ CallRuntime(Runtime::kLog, 2); diff --git a/src/isolate.cc b/src/isolate.cc index 2450d36ba..90944b140 100644 --- a/src/isolate.cc +++ b/src/isolate.cc @@ -2239,7 +2239,7 @@ bool Isolate::Init(Deserializer* des) { InitializeThreadLocal(); bootstrapper_->Initialize(create_heap_objects); - builtins_.SetUp(create_heap_objects); + builtins_.SetUp(this, create_heap_objects); // Only preallocate on the first initialization. if (FLAG_preallocate_message_memory && preallocated_message_space_ == NULL) { diff --git a/src/v8-counters.cc b/src/v8-counters.cc index 905e178fe..6711c8020 100644 --- a/src/v8-counters.cc +++ b/src/v8-counters.cc @@ -49,31 +49,31 @@ Counters::Counters(Isolate* isolate) { #undef HM #define SC(name, caption) \ - name##_ = StatsCounter("c:" #caption); + name##_ = StatsCounter(isolate, "c:" #caption); STATS_COUNTER_LIST_1(SC) STATS_COUNTER_LIST_2(SC) #undef SC #define SC(name) \ - count_of_##name##_ = StatsCounter("c:" "V8.CountOf_" #name); \ - size_of_##name##_ = StatsCounter("c:" "V8.SizeOf_" #name); + count_of_##name##_ = StatsCounter(isolate, "c:" "V8.CountOf_" #name); \ + size_of_##name##_ = StatsCounter(isolate, "c:" "V8.SizeOf_" #name); INSTANCE_TYPE_LIST(SC) #undef SC #define SC(name) \ count_of_CODE_TYPE_##name##_ = \ - StatsCounter("c:" "V8.CountOf_CODE_TYPE-" #name); \ + StatsCounter(isolate, "c:" "V8.CountOf_CODE_TYPE-" #name); \ size_of_CODE_TYPE_##name##_ = \ - StatsCounter("c:" "V8.SizeOf_CODE_TYPE-" #name); + StatsCounter(isolate, "c:" "V8.SizeOf_CODE_TYPE-" #name); CODE_KIND_LIST(SC) #undef SC #define SC(name) \ count_of_FIXED_ARRAY_##name##_ = \ - StatsCounter("c:" "V8.CountOf_FIXED_ARRAY-" #name); \ + StatsCounter(isolate, "c:" "V8.CountOf_FIXED_ARRAY-" #name); \ size_of_FIXED_ARRAY_##name##_ = \ - StatsCounter("c:" "V8.SizeOf_FIXED_ARRAY-" #name); + StatsCounter(isolate, "c:" "V8.SizeOf_FIXED_ARRAY-" #name); FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(SC) #undef SC } diff --git a/src/x64/codegen-x64.h b/src/x64/codegen-x64.h index 93d9aac53..7d1f59ad5 100644 --- a/src/x64/codegen-x64.h +++ b/src/x64/codegen-x64.h @@ -61,7 +61,7 @@ class CodeGenerator: public AstVisitor { // Print the code after compiling it. static void PrintCode(Handle code, CompilationInfo* info); - static bool ShouldGenerateLog(Expression* type); + static bool ShouldGenerateLog(Isolate* isolate, Expression* type); static bool RecordPositions(MacroAssembler* masm, int pos, diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc index 54472c21e..c182dd0ce 100644 --- a/src/x64/full-codegen-x64.cc +++ b/src/x64/full-codegen-x64.cc @@ -3243,7 +3243,7 @@ void FullCodeGenerator::EmitLog(CallRuntime* expr) { // 2 (array): Arguments to the format string. ZoneList* args = expr->arguments(); ASSERT_EQ(args->length(), 3); - if (CodeGenerator::ShouldGenerateLog(args->at(0))) { + if (CodeGenerator::ShouldGenerateLog(isolate(), args->at(0))) { VisitForStackValue(args->at(1)); VisitForStackValue(args->at(2)); __ CallRuntime(Runtime::kLog, 2); -- 2.34.1