Index: src/compiler-dispatcher/compiler-dispatcher-job.cc |
diff --git a/src/compiler-dispatcher/compiler-dispatcher-job.cc b/src/compiler-dispatcher/compiler-dispatcher-job.cc |
index dfa3a926cf407062a78c5e483971f124ffdabd25..6bbb1835f5d68cc26bdab8ba7d71f12dd9368d0e 100644 |
--- a/src/compiler-dispatcher/compiler-dispatcher-job.cc |
+++ b/src/compiler-dispatcher/compiler-dispatcher-job.cc |
@@ -95,8 +95,9 @@ |
shared_(Handle<SharedFunctionInfo>::cast( |
isolate_->global_handles()->Create(*shared))), |
max_stack_size_(max_stack_size), |
- parse_info_( |
- new ParseInfo(Handle<Script>(Script::cast(shared->script())))), |
+ zone_(new Zone(isolate->allocator(), ZONE_NAME)), |
+ parse_info_(new ParseInfo( |
+ zone_.get(), Handle<Script>(Script::cast(shared->script())))), |
compile_info_( |
new CompilationInfo(parse_info_.get(), Handle<JSFunction>::null())), |
trace_compiler_dispatcher_jobs_(FLAG_trace_compiler_dispatcher_jobs) { |
@@ -133,11 +134,11 @@ |
} |
HandleScope scope(isolate_); |
unicode_cache_.reset(new UnicodeCache()); |
+ zone_.reset(new Zone(isolate_->allocator(), ZONE_NAME)); |
Handle<Script> script(Script::cast(shared_->script()), isolate_); |
DCHECK(script->type() != Script::TYPE_NATIVE); |
Handle<String> source(String::cast(script->source()), isolate_); |
- parse_info_.reset(new ParseInfo(isolate_->allocator())); |
if (source->IsExternalTwoByteString() || source->IsExternalOneByteString()) { |
character_stream_.reset(ScannerStream::For( |
source, shared_->start_position(), shared_->end_position())); |
@@ -168,7 +169,7 @@ |
offset = shared_->start_position(); |
int byte_len = length * (source->IsOneByteRepresentation() ? 1 : 2); |
- data = parse_info_->zone()->New(byte_len); |
+ data = zone_->New(byte_len); |
DisallowHeapAllocation no_allocation; |
String::FlatContent content = source->GetFlatContent(); |
@@ -206,6 +207,7 @@ |
ScannerStream::For(wrapper_, shared_->start_position() - offset, |
shared_->end_position() - offset)); |
} |
+ parse_info_.reset(new ParseInfo(zone_.get())); |
parse_info_->set_isolate(isolate_); |
parse_info_->set_character_stream(character_stream_.get()); |
parse_info_->set_hash_seed(isolate_->heap()->HashSeed()); |
@@ -391,6 +393,7 @@ |
return false; |
} |
+ zone_.reset(); |
compile_job_.reset(); |
compile_info_.reset(); |
handles_from_parsing_.reset(); |
@@ -414,6 +417,7 @@ |
character_stream_.reset(); |
handles_from_parsing_.reset(); |
parse_info_.reset(); |
+ zone_.reset(); |
if (!source_.is_null()) { |
i::GlobalHandles::Destroy(Handle<Object>::cast(source_).location()); |