Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index d93639b5d0836a642ba23278a6061c0ab145674e..dd7235ba4e0c44dc589769123b45463d0490a019 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -103,7 +103,6 @@ v8::TryCatch* ThreadLocalTop::TryCatchHandler() { |
} |
-Isolate* Isolate::default_isolate_ = NULL; |
Thread::LocalStorageKey Isolate::isolate_key_; |
Thread::LocalStorageKey Isolate::thread_id_key_; |
Thread::LocalStorageKey Isolate::per_isolate_thread_data_key_; |
@@ -166,7 +165,7 @@ void Isolate::SetCrashIfDefaultIsolateInitialized() { |
void Isolate::EnsureDefaultIsolate() { |
LockGuard<Mutex> lock_guard(&process_wide_mutex_); |
CHECK(default_isolate_status_ != kDefaultIsolateCrashIfInitialized); |
- if (default_isolate_ == NULL) { |
+ if (thread_data_table_ == NULL) { |
isolate_key_ = Thread::CreateThreadLocalKey(); |
thread_id_key_ = Thread::CreateThreadLocalKey(); |
per_isolate_thread_data_key_ = Thread::CreateThreadLocalKey(); |
@@ -174,12 +173,6 @@ void Isolate::EnsureDefaultIsolate() { |
PerThreadAssertScopeBase::thread_local_key = Thread::CreateThreadLocalKey(); |
#endif // DEBUG |
thread_data_table_ = new Isolate::ThreadDataTable(); |
- default_isolate_ = new Isolate(); |
- } |
- // Can't use SetIsolateThreadLocals(default_isolate_, NULL) here |
- // because a non-null thread data may be already set. |
- if (Thread::GetThreadLocal(isolate_key_) == NULL) { |
- Thread::SetThreadLocal(isolate_key_, default_isolate_); |
} |
} |
@@ -1523,9 +1516,7 @@ void Isolate::TearDown() { |
serialize_partial_snapshot_cache_ = NULL; |
} |
- if (!IsDefaultIsolate()) { |
- delete this; |
- } |
+ delete this; |
// Restore the previous current isolate. |
SetIsolateThreadLocals(saved_isolate, saved_data); |