| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/service.h" | 5 #include "vm/service.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
| 9 #include "platform/globals.h" | 9 #include "platform/globals.h" |
| 10 | 10 |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 void Service::InvokeMethod(Isolate* isolate, const Array& msg) { | 502 void Service::InvokeMethod(Isolate* isolate, const Array& msg) { |
| 503 ASSERT(isolate != NULL); | 503 ASSERT(isolate != NULL); |
| 504 ASSERT(!msg.IsNull()); | 504 ASSERT(!msg.IsNull()); |
| 505 ASSERT(msg.Length() == 6); | 505 ASSERT(msg.Length() == 6); |
| 506 | 506 |
| 507 { | 507 { |
| 508 StackZone zone(isolate); | 508 StackZone zone(isolate); |
| 509 HANDLESCOPE(isolate); | 509 HANDLESCOPE(isolate); |
| 510 | 510 |
| 511 Instance& reply_port = Instance::Handle(isolate); | 511 Instance& reply_port = Instance::Handle(isolate); |
| 512 String& seq = String::Handle(isolate); | 512 Instance& seq = String::Handle(isolate); |
| 513 String& method_name = String::Handle(isolate); | 513 String& method_name = String::Handle(isolate); |
| 514 Array& param_keys = Array::Handle(isolate); | 514 Array& param_keys = Array::Handle(isolate); |
| 515 Array& param_values = Array::Handle(isolate); | 515 Array& param_values = Array::Handle(isolate); |
| 516 reply_port ^= msg.At(1); | 516 reply_port ^= msg.At(1); |
| 517 seq ^= msg.At(2); | 517 seq ^= msg.At(2); |
| 518 method_name ^= msg.At(3); | 518 method_name ^= msg.At(3); |
| 519 param_keys ^= msg.At(4); | 519 param_keys ^= msg.At(4); |
| 520 param_values ^= msg.At(5); | 520 param_values ^= msg.At(5); |
| 521 | 521 |
| 522 ASSERT(!method_name.IsNull()); | 522 ASSERT(!method_name.IsNull()); |
| 523 ASSERT(!seq.IsNull()); | 523 ASSERT(seq.IsNull() || seq.IsString() || seq.IsNumber()); |
| 524 ASSERT(!param_keys.IsNull()); | 524 ASSERT(!param_keys.IsNull()); |
| 525 ASSERT(!param_values.IsNull()); | 525 ASSERT(!param_values.IsNull()); |
| 526 ASSERT(param_keys.Length() == param_values.Length()); | 526 ASSERT(param_keys.Length() == param_values.Length()); |
| 527 | 527 |
| 528 if (!reply_port.IsSendPort()) { | 528 if (!reply_port.IsSendPort()) { |
| 529 FATAL("SendPort expected."); | 529 FATAL("SendPort expected."); |
| 530 } | 530 } |
| 531 | 531 |
| 532 JSONStream js; | 532 JSONStream js; |
| 533 js.Setup(zone.GetZone(), SendPort::Cast(reply_port).Id(), | 533 js.Setup(zone.GetZone(), SendPort::Cast(reply_port).Id(), |
| (...skipping 2532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3066 ServiceMethodDescriptor& method = service_methods_[i]; | 3066 ServiceMethodDescriptor& method = service_methods_[i]; |
| 3067 if (strcmp(method_name, method.name) == 0) { | 3067 if (strcmp(method_name, method.name) == 0) { |
| 3068 return &method; | 3068 return &method; |
| 3069 } | 3069 } |
| 3070 } | 3070 } |
| 3071 return NULL; | 3071 return NULL; |
| 3072 } | 3072 } |
| 3073 | 3073 |
| 3074 | 3074 |
| 3075 } // namespace dart | 3075 } // namespace dart |
| OLD | NEW |