Chromium Code Reviews| 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; |
| } |