| 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();
|
| }
|
|
|
|
|
|
|