Chromium Code Reviews| Index: runtime/vm/object_store.cc |
| =================================================================== |
| --- runtime/vm/object_store.cc (revision 2103) |
| +++ runtime/vm/object_store.cc (working copy) |
| @@ -4,6 +4,7 @@ |
| #include "vm/object_store.h" |
| +#include "vm/exceptions.h" |
| #include "vm/isolate.h" |
| #include "vm/object.h" |
| #include "vm/raw_object.h" |
| @@ -48,7 +49,9 @@ |
| registered_libraries_(Library::null()), |
| pending_classes_(Array::null()), |
| sticky_error_(String::null()), |
| - empty_context_(Context::null()) { |
| + empty_context_(Context::null()), |
| + stack_overflow_(Instance::null()), |
| + preallocate_objects_called_(false) { |
| } |
| @@ -69,6 +72,19 @@ |
| } |
| +void ObjectStore::PreallocateObjects() { |
| + if (preallocate_objects_called_) { |
| + return; |
| + } |
| + preallocate_objects_called_ = true; |
| + |
| + GrowableArray<const Object*> args; |
| + const Instance& exception = |
| + Instance::Handle(Exceptions::Create(Exceptions::kStackOverflow, args)); |
|
siva
2011/12/06 20:44:05
Since this runs dart code there is a possibility t
turnidge
2011/12/06 22:51:09
Added LongJump around the call. The error is prop
|
| + set_stack_overflow(exception); |
| +} |
| + |
| + |
| RawClass* ObjectStore::GetClass(int index) { |
| switch (index) { |
| case kObjectClass: return object_class_; |