| Index: runtime/vm/compiler.cc
|
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
|
| index 1e27005a355661c88d06655c32e2cdd85878c1e6..44fbb112db7739fdd7086bc90baf91b23ddd3e31 100644
|
| --- a/runtime/vm/compiler.cc
|
| +++ b/runtime/vm/compiler.cc
|
| @@ -187,8 +187,8 @@ DEFINE_RUNTIME_ENTRY(CompileFunction, 1) {
|
| RawError* Compiler::Compile(const Library& library, const Script& script) {
|
| LongJumpScope jump;
|
| if (setjmp(*jump.Set()) == 0) {
|
| - Isolate* const isolate = Isolate::Current();
|
| - StackZone zone(isolate);
|
| + Thread* const thread = Thread::Current();
|
| + StackZone zone(thread);
|
| if (FLAG_trace_compiler) {
|
| const String& script_url = String::Handle(script.url());
|
| // TODO(iposva): Extract script kind.
|
| @@ -199,8 +199,9 @@ RawError* Compiler::Compile(const Library& library, const Script& script) {
|
| Parser::ParseCompilationUnit(library, script);
|
| return Error::null();
|
| } else {
|
| - Isolate* const isolate = Isolate::Current();
|
| - StackZone zone(isolate);
|
| + Thread* const thread = Thread::Current();
|
| + Isolate* const isolate = thread->isolate();
|
| + StackZone zone(thread);
|
| Error& error = Error::Handle();
|
| error = isolate->object_store()->sticky_error();
|
| isolate->object_store()->clear_sticky_error();
|
| @@ -395,7 +396,7 @@ static bool CompileParsedFunctionHelper(CompilationPipeline* pipeline,
|
| Zone* const zone = thread->zone();
|
| Isolate* const isolate = thread->isolate();
|
| CSTAT_TIMER_SCOPE(isolate, codegen_timer);
|
| - HANDLESCOPE(isolate);
|
| + HANDLESCOPE(thread);
|
|
|
| // We may reattempt compilation if the function needs to be assembled using
|
| // far branches on ARM and MIPS. In the else branch of the setjmp call,
|
| @@ -1013,7 +1014,7 @@ static RawError* CompileFunctionHelper(CompilationPipeline* pipeline,
|
| if (setjmp(*jump.Set()) == 0) {
|
| Thread* const thread = Thread::Current();
|
| Isolate* const isolate = thread->isolate();
|
| - StackZone stack_zone(isolate);
|
| + StackZone stack_zone(thread);
|
| Zone* const zone = stack_zone.GetZone();
|
| TIMERSCOPE(isolate, time_compilation);
|
| Timer per_compile_timer(FLAG_trace_compiler, "Compilation time");
|
| @@ -1041,7 +1042,7 @@ static RawError* CompileFunctionHelper(CompilationPipeline* pipeline,
|
| (function.end_token_pos() - function.token_pos()));
|
| }
|
| {
|
| - HANDLESCOPE(isolate);
|
| + HANDLESCOPE(thread);
|
| pipeline->ParseFunction(parsed_function);
|
| }
|
|
|
| @@ -1095,7 +1096,7 @@ static RawError* CompileFunctionHelper(CompilationPipeline* pipeline,
|
| } else {
|
| Thread* const thread = Thread::Current();
|
| Isolate* const isolate = thread->isolate();
|
| - StackZone stack_zone(isolate);
|
| + StackZone stack_zone(thread);
|
| Error& error = Error::Handle();
|
| // We got an error during compilation.
|
| error = isolate->object_store()->sticky_error();
|
| @@ -1289,8 +1290,8 @@ void Compiler::CompileStaticInitializer(const Field& field) {
|
| return;
|
| }
|
| ASSERT(field.initializer() == Function::null());
|
| - Isolate* isolate = Isolate::Current();
|
| - StackZone zone(isolate);
|
| + Thread* thread = Thread::Current();
|
| + StackZone zone(thread);
|
|
|
| ParsedFunction* parsed_function = Parser::ParseStaticFieldInitializer(field);
|
|
|
| @@ -1321,8 +1322,8 @@ RawObject* Compiler::EvaluateStaticInitializer(const Field& field) {
|
| // initializer has not yet been created, so create it now, but don't bother
|
| // remembering it because it won't be used again.
|
| if (initializer.IsNull()) {
|
| - Isolate* const isolate = Isolate::Current();
|
| - StackZone zone(isolate);
|
| + Thread* const thread = Thread::Current();
|
| + StackZone zone(thread);
|
| ParsedFunction* parsed_function =
|
| Parser::ParseStaticFieldInitializer(field);
|
|
|
| @@ -1343,8 +1344,9 @@ RawObject* Compiler::EvaluateStaticInitializer(const Field& field) {
|
| DartEntry::InvokeFunction(initializer, Object::empty_array()));
|
| return result.raw();
|
| } else {
|
| - Isolate* const isolate = Isolate::Current();
|
| - StackZone zone(isolate);
|
| + Thread* const thread = Thread::Current();
|
| + Isolate* const isolate = thread->isolate();
|
| + StackZone zone(thread);
|
| const Error& error =
|
| Error::Handle(isolate, isolate->object_store()->sticky_error());
|
| isolate->object_store()->clear_sticky_error();
|
|
|