Chromium Code Reviews| Index: runtime/vm/isolate.cc |
| =================================================================== |
| --- runtime/vm/isolate.cc (revision 39568) |
| +++ runtime/vm/isolate.cc (working copy) |
| @@ -444,10 +444,65 @@ |
| set_vm_tag(VMTag::kIdleTagId); |
| set_user_tag(UserTags::kDefaultUserTag); |
| } |
| + |
| +Isolate::Isolate(Isolate* original) |
| + : store_buffer_(true), |
|
koda
2014/08/26 23:34:48
add /* shallow_copy = */ to make this slightly les
Ivan Posva
2014/08/27 01:00:22
ditto.
|
| + class_table_(original->class_table()), |
| + message_notify_callback_(NULL), |
| + name_(NULL), |
| + start_time_(OS::GetCurrentTimeMicros()), |
| + main_port_(0), |
| + pause_capability_(0), |
| + terminate_capability_(0), |
| + heap_(NULL), |
| + object_store_(NULL), |
| + top_context_(Context::null()), |
| + top_exit_frame_info_(0), |
| + init_callback_data_(NULL), |
| + environment_callback_(NULL), |
| + library_tag_handler_(NULL), |
| + api_state_(NULL), |
| + stub_code_(NULL), |
| + debugger_(NULL), |
| + single_step_(false), |
| + resume_request_(false), |
| + random_(), |
| + simulator_(NULL), |
| + long_jump_base_(NULL), |
| + timer_list_(), |
| + deopt_id_(0), |
| + mutex_(new Mutex()), |
| + stack_limit_(0), |
| + saved_stack_limit_(0), |
| + stack_overflow_flags_(0), |
| + stack_overflow_count_(0), |
| + message_handler_(NULL), |
| + spawn_state_(NULL), |
| + is_runnable_(false), |
| + gc_prologue_callback_(NULL), |
| + gc_epilogue_callback_(NULL), |
| + defer_finalization_count_(0), |
| + deopt_context_(NULL), |
| + stacktrace_(NULL), |
| + stack_frame_index_(-1), |
| + last_allocationprofile_accumulator_reset_timestamp_(0), |
| + last_allocationprofile_gc_timestamp_(0), |
| + cha_(NULL), |
| + object_id_ring_(NULL), |
| + trace_buffer_(NULL), |
| + profiler_data_(NULL), |
| + thread_state_(NULL), |
| + tag_table_(GrowableObjectArray::null()), |
| + current_tag_(UserTag::null()), |
| + metrics_list_head_(NULL), |
| + next_(NULL), |
| + REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_INITIALIZERS) |
| + REUSABLE_HANDLE_LIST(REUSABLE_HANDLE_SCOPE_INIT) |
| + reusable_handles_() { |
| +} |
| #undef REUSABLE_HANDLE_SCOPE_INIT |
| #undef REUSABLE_HANDLE_INITIALIZERS |
| - |
| Isolate::~Isolate() { |
| delete [] name_; |
| delete heap_; |
| @@ -984,6 +1039,11 @@ |
| } |
| +Isolate* Isolate::ShallowCopy() { |
| + return new Isolate(this); |
| +} |
| + |
| + |
| Dart_IsolateCreateCallback Isolate::create_callback_ = NULL; |
| Dart_IsolateInterruptCallback Isolate::interrupt_callback_ = NULL; |
| Dart_IsolateUnhandledExceptionCallback |