Index: runtime/vm/service.cc |
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc |
index a517f21c1336952ecd5fd4c8cf688d5d8df1de74..a94fb08b0e786f329ad07c22751a658d445e25fa 100644 |
--- a/runtime/vm/service.cc |
+++ b/runtime/vm/service.cc |
@@ -905,8 +905,14 @@ bool Service::ScheduleExtensionHandler(const String& method_name, |
arguments.SetAt(2, parameter_values); |
arguments.SetAt(3, reply_port); |
arguments.SetAt(4, id); |
- return (DartEntry::InvokeFunction(schedule_extension, arguments) == |
- Object::bool_true().raw()); |
+ const Object& result = Object::Handle( |
+ DartEntry::InvokeFunction(schedule_extension, arguments)); |
Ivan Posva
2015/08/20 20:46:05
This still executes Dart code at an arbitrary loca
Cutch
2015/08/21 14:18:56
I now no longer invoke any Dart code from the OOB.
|
+ if (result.IsNull()) { |
+ return false; |
+ } |
+ Isolate* isolate = Isolate::Current(); |
+ isolate->AppendExtensionCall(Instance::Cast(result)); |
+ return true; |
} |