| Index: runtime/vm/service.cc
|
| ===================================================================
|
| --- runtime/vm/service.cc (revision 37797)
|
| +++ runtime/vm/service.cc (working copy)
|
| @@ -981,19 +981,22 @@
|
| return true;
|
| }
|
| ObjectGraph graph(isolate);
|
| - Array& path = Array::Handle(Array::New(limit));
|
| + Array& path = Array::Handle(Array::New(limit * 2));
|
| intptr_t length = graph.RetainingPath(obj, path);
|
| JSONObject jsobj(js);
|
| jsobj.AddProperty("type", "RetainingPath");
|
| jsobj.AddProperty("id", "retaining_path");
|
| jsobj.AddProperty("length", length);
|
| JSONArray elements(&jsobj, "elements");
|
| - for (intptr_t i = 0; i < path.Length() && i < length; ++i) {
|
| + Object& element = Object::Handle();
|
| + Smi& offset_from_parent = Smi::Handle();
|
| + for (intptr_t i = 0; i < limit && i < length; ++i) {
|
| JSONObject jselement(&elements);
|
| - Object& element = Object::Handle();
|
| - element = path.At(i);
|
| + element = path.At(i * 2);
|
| jselement.AddProperty("index", i);
|
| jselement.AddProperty("value", element);
|
| + offset_from_parent ^= path.At((i * 2) + 1);
|
| + // TODO(koda): Interpret offset as field, list index or map entry.
|
| }
|
| return true;
|
| }
|
|
|