| Index: runtime/vm/service.cc
|
| diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc
|
| index 4662ff9fdd0a1a90e602fc52a4ab9578b5f16ec1..6132385738586fd30b202c273f394a9908aacece 100644
|
| --- a/runtime/vm/service.cc
|
| +++ b/runtime/vm/service.cc
|
| @@ -1113,8 +1113,8 @@ static RawObject* LookupObjectId(Isolate* isolate,
|
| *kind = ObjectIdRing::kInvalid;
|
| return Object::null();
|
| }
|
| - const Integer& obj =
|
| - Integer::Handle(isolate, Smi::New(static_cast<intptr_t>(value)));
|
| + const Integer& obj = Integer::Handle(isolate->current_zone(),
|
| + Smi::New(static_cast<intptr_t>(value)));
|
| return obj.raw();
|
| } else if (strcmp(arg, "bool-true") == 0) {
|
| return Bool::True().raw();
|
| @@ -1238,7 +1238,8 @@ static RawObject* LookupHeapObjectClasses(Isolate* isolate,
|
| return Object::sentinel().raw();
|
| }
|
| const char* encoded_id = parts[3];
|
| - String& id = String::Handle(isolate, String::New(encoded_id));
|
| + String& id = String::Handle(isolate->current_zone(),
|
| + String::New(encoded_id));
|
| id = String::DecodeIRI(id);
|
| if (id.IsNull()) {
|
| return Object::sentinel().raw();
|
| @@ -1428,7 +1429,7 @@ static RawObject* LookupHeapObject(Isolate* isolate,
|
|
|
| if (strcmp(parts[0], "objects") == 0) {
|
| // Object ids look like "objects/1123"
|
| - Object& obj = Object::Handle(isolate);
|
| + Object& obj = Object::Handle(isolate->current_zone());
|
| ObjectIdRing::LookupResult lookup_result;
|
| obj = LookupObjectId(isolate, parts[1], &lookup_result);
|
| if (lookup_result != ObjectIdRing::kValid) {
|
| @@ -1590,7 +1591,7 @@ static bool GetInboundReferences(Isolate* isolate, JSONStream* js) {
|
| return true;
|
| }
|
|
|
| - Object& obj = Object::Handle(isolate);
|
| + Object& obj = Object::Handle(thread->zone());
|
| ObjectIdRing::LookupResult lookup_result;
|
| {
|
| HANDLESCOPE(thread);
|
| @@ -1692,7 +1693,7 @@ static bool GetRetainingPath(Isolate* isolate, JSONStream* js) {
|
| return true;
|
| }
|
|
|
| - Object& obj = Object::Handle(isolate);
|
| + Object& obj = Object::Handle(thread->zone());
|
| ObjectIdRing::LookupResult lookup_result;
|
| {
|
| HANDLESCOPE(thread);
|
| @@ -1773,7 +1774,8 @@ static bool Evaluate(Isolate* isolate, JSONStream* js) {
|
| PrintMissingParamError(js, "expression");
|
| return true;
|
| }
|
| - const String& expr_str = String::Handle(isolate, String::New(expr));
|
| + const String& expr_str =
|
| + String::Handle(isolate->current_zone(), String::New(expr));
|
| ObjectIdRing::LookupResult lookup_result;
|
| Object& obj = Object::Handle(LookupHeapObject(isolate, target_id,
|
| &lookup_result));
|
| @@ -1806,7 +1808,7 @@ static bool Evaluate(Isolate* isolate, JSONStream* js) {
|
| if ((obj.IsInstance() || obj.IsNull()) &&
|
| !ContainsNonInstance(obj)) {
|
| // We don't use Instance::Cast here because it doesn't allow null.
|
| - Instance& instance = Instance::Handle(isolate);
|
| + Instance& instance = Instance::Handle(isolate->current_zone());
|
| instance ^= obj.raw();
|
| const Object& result =
|
| Object::Handle(instance.Evaluate(expr_str,
|
| @@ -1841,7 +1843,8 @@ static bool EvaluateInFrame(Isolate* isolate, JSONStream* js) {
|
| ActivationFrame* frame = stack->FrameAt(framePos);
|
|
|
| const char* expr = js->LookupParam("expression");
|
| - const String& expr_str = String::Handle(isolate, String::New(expr));
|
| + const String& expr_str = String::Handle(isolate->current_zone(),
|
| + String::New(expr));
|
|
|
| const Object& result = Object::Handle(frame->Evaluate(expr_str));
|
| result.PrintJSON(js, true);
|
| @@ -1995,8 +1998,9 @@ class FunctionCoverageFilter : public CoverageFilter {
|
|
|
|
|
| static bool GetHitsOrSites(Isolate* isolate, JSONStream* js, bool as_sites) {
|
| + Thread* thread = Thread::Current();
|
| if (!js->HasParam("targetId")) {
|
| - CodeCoverage::PrintJSON(isolate, js, NULL, as_sites);
|
| + CodeCoverage::PrintJSON(thread, js, NULL, as_sites);
|
| return true;
|
| }
|
| const char* target_id = js->LookupParam("targetId");
|
| @@ -2007,22 +2011,22 @@ static bool GetHitsOrSites(Isolate* isolate, JSONStream* js, bool as_sites) {
|
| }
|
| if (obj.IsScript()) {
|
| ScriptCoverageFilter sf(Script::Cast(obj));
|
| - CodeCoverage::PrintJSON(isolate, js, &sf, as_sites);
|
| + CodeCoverage::PrintJSON(thread, js, &sf, as_sites);
|
| return true;
|
| }
|
| if (obj.IsLibrary()) {
|
| LibraryCoverageFilter lf(Library::Cast(obj));
|
| - CodeCoverage::PrintJSON(isolate, js, &lf, as_sites);
|
| + CodeCoverage::PrintJSON(thread, js, &lf, as_sites);
|
| return true;
|
| }
|
| if (obj.IsClass()) {
|
| ClassCoverageFilter cf(Class::Cast(obj));
|
| - CodeCoverage::PrintJSON(isolate, js, &cf, as_sites);
|
| + CodeCoverage::PrintJSON(thread, js, &cf, as_sites);
|
| return true;
|
| }
|
| if (obj.IsFunction()) {
|
| FunctionCoverageFilter ff(Function::Cast(obj));
|
| - CodeCoverage::PrintJSON(isolate, js, &ff, as_sites);
|
| + CodeCoverage::PrintJSON(thread, js, &ff, as_sites);
|
| return true;
|
| }
|
| js->PrintError(kInvalidParams,
|
| @@ -2211,14 +2215,15 @@ static bool RemoveBreakpoint(Isolate* isolate, JSONStream* js) {
|
|
|
|
|
| static RawClass* GetMetricsClass(Isolate* isolate) {
|
| + Zone* zone = isolate->current_zone();
|
| const Library& prof_lib =
|
| - Library::Handle(isolate, Library::DeveloperLibrary());
|
| + Library::Handle(zone, Library::DeveloperLibrary());
|
| ASSERT(!prof_lib.IsNull());
|
| const String& metrics_cls_name =
|
| - String::Handle(isolate, String::New("Metrics"));
|
| + String::Handle(zone, String::New("Metrics"));
|
| ASSERT(!metrics_cls_name.IsNull());
|
| const Class& metrics_cls =
|
| - Class::Handle(isolate, prof_lib.LookupClass(metrics_cls_name));
|
| + Class::Handle(zone, prof_lib.LookupClass(metrics_cls_name));
|
| ASSERT(!metrics_cls.IsNull());
|
| return metrics_cls.raw();
|
| }
|
| @@ -2259,17 +2264,18 @@ static bool HandleNativeMetric(Isolate* isolate,
|
|
|
|
|
| static bool HandleDartMetricsList(Isolate* isolate, JSONStream* js) {
|
| - const Class& metrics_cls = Class::Handle(isolate, GetMetricsClass(isolate));
|
| + Zone* zone = isolate->current_zone();
|
| + const Class& metrics_cls = Class::Handle(zone, GetMetricsClass(isolate));
|
| const String& print_metrics_name =
|
| String::Handle(String::New("_printMetrics"));
|
| ASSERT(!print_metrics_name.IsNull());
|
| const Function& print_metrics = Function::Handle(
|
| - isolate,
|
| + zone,
|
| metrics_cls.LookupStaticFunctionAllowPrivate(print_metrics_name));
|
| ASSERT(!print_metrics.IsNull());
|
| const Array& args = Object::empty_array();
|
| const Object& result =
|
| - Object::Handle(isolate, DartEntry::InvokeFunction(print_metrics, args));
|
| + Object::Handle(zone, DartEntry::InvokeFunction(print_metrics, args));
|
| ASSERT(!result.IsNull());
|
| ASSERT(result.IsString());
|
| TextBuffer* buffer = js->buffer();
|
| @@ -2279,12 +2285,13 @@ static bool HandleDartMetricsList(Isolate* isolate, JSONStream* js) {
|
|
|
|
|
| static bool HandleDartMetric(Isolate* isolate, JSONStream* js, const char* id) {
|
| - const Class& metrics_cls = Class::Handle(isolate, GetMetricsClass(isolate));
|
| + Zone* zone = isolate->current_zone();
|
| + const Class& metrics_cls = Class::Handle(zone, GetMetricsClass(isolate));
|
| const String& print_metric_name =
|
| String::Handle(String::New("_printMetric"));
|
| ASSERT(!print_metric_name.IsNull());
|
| const Function& print_metric = Function::Handle(
|
| - isolate,
|
| + zone,
|
| metrics_cls.LookupStaticFunctionAllowPrivate(print_metric_name));
|
| ASSERT(!print_metric.IsNull());
|
| const String& arg0 = String::Handle(String::New(id));
|
| @@ -2293,7 +2300,7 @@ static bool HandleDartMetric(Isolate* isolate, JSONStream* js, const char* id) {
|
| ASSERT(!args.IsNull());
|
| args.SetAt(0, arg0);
|
| const Object& result =
|
| - Object::Handle(isolate, DartEntry::InvokeFunction(print_metric, args));
|
| + Object::Handle(zone, DartEntry::InvokeFunction(print_metric, args));
|
| if (!result.IsNull()) {
|
| ASSERT(result.IsString());
|
| TextBuffer* buffer = js->buffer();
|
| @@ -2747,7 +2754,7 @@ static const MethodParameter* get_object_by_address_params[] = {
|
|
|
|
|
| static RawObject* GetObjectHelper(Isolate* isolate, uword addr) {
|
| - Object& object = Object::Handle(isolate);
|
| + Object& object = Object::Handle(isolate->current_zone());
|
|
|
| {
|
| NoSafepointScope no_safepoint;
|
| @@ -2783,7 +2790,8 @@ static bool GetObjectByAddress(Isolate* isolate, JSONStream* js) {
|
| return true;
|
| }
|
| bool ref = js->HasParam("ref") && js->ParamIs("ref", "true");
|
| - const Object& obj = Object::Handle(isolate, GetObjectHelper(isolate, addr));
|
| + const Object& obj = Object::Handle(isolate->current_zone(),
|
| + GetObjectHelper(isolate, addr));
|
| if (obj.IsNull()) {
|
| PrintSentinel(js, kFreeSentinel);
|
| } else {
|
|
|