Chromium Code Reviews| Index: vm/dart_api_impl.cc |
| =================================================================== |
| --- vm/dart_api_impl.cc (revision 1719) |
| +++ vm/dart_api_impl.cc (working copy) |
| @@ -441,8 +441,12 @@ |
| // Return error if isolate is in an inconsistent state. |
| // Return NULL when no error condition exists. |
| -static const char* CheckIsolateState(Isolate* isolate) { |
| - if (!ClassFinalizer::FinalizePendingClasses()) { |
| +static const char* CheckIsolateState(Isolate* isolate, |
| + bool generating_snapshot) { |
|
Ivan Posva
2011/11/22 00:42:53
This is almost a default parameter value.
siva
2011/11/22 01:19:37
Made a default parameter.
On 2011/11/22 00:42:53,
|
| + bool result = (generating_snapshot) ? |
| + ClassFinalizer::FinalizePendingClassesForSnapshotCreation() : |
| + ClassFinalizer::FinalizePendingClasses(); |
| + if (!result) { |
| // Make a copy of the error message as the original message string |
| // may get deallocated when we return back from the Dart API call. |
| const String& err = |
| @@ -461,7 +465,8 @@ |
| Isolate* isolate = Isolate::Current(); |
| DARTSCOPE(isolate); |
| Dart_Handle result; |
| - const char* msg = CheckIsolateState(isolate); |
| + const char* msg = CheckIsolateState(isolate, |
| + ClassFinalizer::kNotGeneratingSnapshot); |
| if (msg != NULL) { |
| return Api::Error(msg); |
| } |
| @@ -713,7 +718,8 @@ |
| Instance& instance = Instance::Handle(); |
| instance ^= obj.raw(); |
| // Finalize all classes. |
| - const char* msg = CheckIsolateState(isolate); |
| + const char* msg = CheckIsolateState(isolate, |
| + ClassFinalizer::kNotGeneratingSnapshot); |
| if (msg != NULL) { |
| return Api::Error(msg); |
| } |
| @@ -1498,7 +1504,8 @@ |
| Isolate* isolate = Isolate::Current(); |
| DARTSCOPE(isolate); |
| // Finalize all classes. |
| - const char* msg = CheckIsolateState(isolate); |
| + const char* msg = CheckIsolateState(isolate, |
| + ClassFinalizer::kNotGeneratingSnapshot); |
| if (msg != NULL) { |
| return Api::Error(msg); |
| } |
| @@ -2010,7 +2017,8 @@ |
| if (snapshot_buffer == NULL || snapshot_size == NULL) { |
| return Api::Error("Invalid input parameters to Dart_CreateSnapshot"); |
| } |
| - const char* msg = CheckIsolateState(isolate); |
| + const char* msg = CheckIsolateState(isolate, |
| + ClassFinalizer::kGeneratingSnapshot); |
| if (msg != NULL) { |
| return Api::Error(msg); |
| } |