Index: runtime/vm/service.cc |
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc |
index 39f4fec6246c13c4e50efd183a0d6792ddd4fb17..ccc2d58865787bec2cd1cd461036385575625692 100644 |
--- a/runtime/vm/service.cc |
+++ b/runtime/vm/service.cc |
@@ -1271,22 +1271,24 @@ static RawObject* LookupHeapObjectClasses(Thread* thread, |
return func.raw(); |
} else if (strcmp(parts[2], "fields") == 0) { |
- // Field ids look like: "classes/17/fields/11" |
+ // Field ids look like: "classes/17/fields/name" |
if (num_parts != 4) { |
return Object::sentinel().raw(); |
} |
- intptr_t id; |
- if (!GetIntegerId(parts[3], &id)) { |
+ const char* encoded_id = parts[3]; |
+ String& id = String::Handle(zone, String::New(encoded_id)); |
+ id = String::DecodeIRI(id); |
+ if (id.IsNull()) { |
return Object::sentinel().raw(); |
} |
- Field& field = Field::Handle(zone, cls.FieldFromIndex(id)); |
+ Field& field = Field::Handle(zone, cls.LookupField(id)); |
if (field.IsNull()) { |
return Object::sentinel().raw(); |
} |
return field.raw(); |
} else if (strcmp(parts[2], "functions") == 0) { |
- // Function ids look like: "classes/17/functions/11" |
+ // Function ids look like: "classes/17/functions/name" |
if (num_parts != 4) { |
return Object::sentinel().raw(); |
} |