| Index: runtime/vm/service.cc
|
| diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc
|
| index 1dc403b15ffc2cfc67d5c998bb0dd50447365932..ba562356b0fefaa7a6b586ed9791ac742d21a465 100644
|
| --- a/runtime/vm/service.cc
|
| +++ b/runtime/vm/service.cc
|
| @@ -2041,17 +2041,9 @@ static bool GetCallSiteData(Isolate* isolate, JSONStream* js) {
|
| }
|
|
|
|
|
| -static const MethodParameter* add_breakpoint_params[] = {
|
| - ISOLATE_PARAMETER,
|
| - new IdParameter("scriptId", false),
|
| - new IdParameter("scriptUri", false),
|
| - new UIntParameter("line", true),
|
| - new UIntParameter("column", false),
|
| - NULL,
|
| -};
|
| -
|
| -
|
| -static bool AddBreakpoint(Isolate* isolate, JSONStream* js) {
|
| +static bool AddBreakpointCommon(Isolate* isolate,
|
| + JSONStream* js,
|
| + const String& script_uri) {
|
| const char* line_param = js->LookupParam("line");
|
| intptr_t line = UIntParameter::Parse(line_param);
|
| const char* col_param = js->LookupParam("column");
|
| @@ -2064,28 +2056,6 @@ static bool AddBreakpoint(Isolate* isolate, JSONStream* js) {
|
| return true;
|
| }
|
| }
|
| - const char* script_id_param = js->LookupParam("scriptId");
|
| - const char* script_uri_param = js->LookupParam("scriptUri");
|
| - if (script_id_param == NULL && script_uri_param == NULL) {
|
| - js->PrintError(kInvalidParams,
|
| - "%s expects the 'scriptId' or the 'scriptUri' parameter",
|
| - js->method());
|
| - return true;
|
| - }
|
| - String& script_uri = String::Handle(isolate);
|
| - if (script_id_param != NULL) {
|
| - Object& obj =
|
| - Object::Handle(LookupHeapObject(isolate, script_id_param, NULL));
|
| - if (obj.raw() == Object::sentinel().raw() || !obj.IsScript()) {
|
| - PrintInvalidParamError(js, "scriptId");
|
| - return true;
|
| - }
|
| - const Script& script = Script::Cast(obj);
|
| - script_uri = script.url();
|
| - }
|
| - if (script_uri_param != NULL) {
|
| - script_uri = String::New(script_uri_param);
|
| - }
|
| ASSERT(!script_uri.IsNull());
|
| Breakpoint* bpt = NULL;
|
| bpt = isolate->debugger()->SetBreakpointAtLineCol(script_uri, line, col);
|
| @@ -2100,6 +2070,46 @@ static bool AddBreakpoint(Isolate* isolate, JSONStream* js) {
|
| }
|
|
|
|
|
| +static const MethodParameter* add_breakpoint_params[] = {
|
| + ISOLATE_PARAMETER,
|
| + new IdParameter("scriptId", true),
|
| + new UIntParameter("line", true),
|
| + new UIntParameter("column", false),
|
| + NULL,
|
| +};
|
| +
|
| +
|
| +static bool AddBreakpoint(Isolate* isolate, JSONStream* js) {
|
| + const char* script_id_param = js->LookupParam("scriptId");
|
| + Object& obj =
|
| + Object::Handle(LookupHeapObject(isolate, script_id_param, NULL));
|
| + if (obj.raw() == Object::sentinel().raw() || !obj.IsScript()) {
|
| + PrintInvalidParamError(js, "scriptId");
|
| + return true;
|
| + }
|
| + const Script& script = Script::Cast(obj);
|
| + const String& script_uri = String::Handle(script.url());
|
| + ASSERT(!script_uri.IsNull());
|
| + return AddBreakpointCommon(isolate, js, script_uri);
|
| +}
|
| +
|
| +
|
| +static const MethodParameter* add_breakpoint_with_script_uri_params[] = {
|
| + ISOLATE_PARAMETER,
|
| + new IdParameter("scriptUri", true),
|
| + new UIntParameter("line", true),
|
| + new UIntParameter("column", false),
|
| + NULL,
|
| +};
|
| +
|
| +
|
| +static bool AddBreakpointWithScriptUri(Isolate* isolate, JSONStream* js) {
|
| + const char* script_uri_param = js->LookupParam("scriptUri");
|
| + const String& script_uri = String::Handle(String::New(script_uri_param));
|
| + return AddBreakpointCommon(isolate, js, script_uri);
|
| +}
|
| +
|
| +
|
| static const MethodParameter* add_breakpoint_at_entry_params[] = {
|
| ISOLATE_PARAMETER,
|
| new IdParameter("functionId", true),
|
| @@ -3121,6 +3131,8 @@ static ServiceMethodDescriptor service_methods_[] = {
|
| NULL },
|
| { "addBreakpoint", AddBreakpoint,
|
| add_breakpoint_params },
|
| + { "addBreakpointWithScriptUri", AddBreakpointWithScriptUri,
|
| + add_breakpoint_with_script_uri_params },
|
| { "addBreakpointAtEntry", AddBreakpointAtEntry,
|
| add_breakpoint_at_entry_params },
|
| { "_addBreakpointAtActivation", AddBreakpointAtActivation,
|
|
|