| Index: runtime/vm/dart_api_impl.cc
|
| ===================================================================
|
| --- runtime/vm/dart_api_impl.cc (revision 33504)
|
| +++ runtime/vm/dart_api_impl.cc (working copy)
|
| @@ -3139,7 +3139,9 @@
|
| if (type_obj.IsNull()) {
|
| RETURN_TYPE_ERROR(isolate, type, Type);
|
| }
|
| - const Class& cls = Class::Handle(isolate, type_obj.type_class());
|
| + REUSABLE_CLASS_HANDLESCOPE(isolate);
|
| + Class& cls = isolate->ClassHandle();
|
| + cls = type_obj.type_class();
|
|
|
| if (!cls.is_fields_marked_nullable()) {
|
| // Mark all fields as nullable.
|
| @@ -3160,6 +3162,13 @@
|
| }
|
| }
|
|
|
| + REUSABLE_ERROR_HANDLESCOPE(isolate);
|
| + Error& error = isolate->ErrorHandle();
|
| + error = cls.EnsureIsFinalized(isolate);
|
| + if (!error.IsNull()) {
|
| + // An error occurred, return error object.
|
| + return Api::NewHandle(isolate, error.raw());
|
| + }
|
| // Allocate an object for the given class.
|
| return Api::NewHandle(isolate, Instance::New(cls));
|
| }
|
|
|