Index: runtime/vm/dart.cc |
=================================================================== |
--- runtime/vm/dart.cc (revision 3862) |
+++ runtime/vm/dart.cc (working copy) |
@@ -10,7 +10,6 @@ |
#include "vm/handles.h" |
#include "vm/heap.h" |
#include "vm/isolate.h" |
-#include "vm/longjump.h" |
#include "vm/object.h" |
#include "vm/object_store.h" |
#include "vm/port.h" |
@@ -63,7 +62,7 @@ |
} |
-void Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { |
+RawError* Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { |
// Initialize the new isolate. |
TIMERSCOPE(time_isolate_initialization); |
Isolate* isolate = Isolate::Current(); |
@@ -74,7 +73,10 @@ |
ObjectStore::Init(isolate); |
if (snapshot_buffer == NULL) { |
- Object::Init(isolate); |
+ const Error& error = Error::Handle(Object::Init(isolate)); |
+ if (!error.IsNull()) { |
+ return error.raw(); |
+ } |
} else { |
// Initialize from snapshot (this should replicate the functionality |
// of Object::Init(..) in a regular isolate creation path. |
@@ -87,6 +89,7 @@ |
StubCode::Init(isolate); |
CodeIndexTable::Init(isolate); |
isolate->set_init_callback_data(data); |
+ return Error::null(); |
} |