Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(793)

Unified Diff: runtime/vm/object.cc

Issue 1150103005: Provide a logical view of VM-internal maps in Observatory. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 2896d725180f662d382c2b980421d174e8c3de20..855ae0f57c0f89014f38f3c05355ebb71607bdc5 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -19377,11 +19377,12 @@ void Array::PrintJSONImpl(JSONStream* stream, bool ref) const {
}
{
JSONArray jsarr(&jsobj, "elements");
+ Object& element = Object::Handle();
koda 2015/06/02 16:42:37 Thanks for fixing this.
for (intptr_t index = 0; index < Length(); index++) {
JSONObject jselement(&jsarr);
jselement.AddProperty("index", index);
- Object& element = Object::Handle(At(index));
+ element = At(index);
jselement.AddProperty("value", element);
}
}
@@ -19623,11 +19624,12 @@ void GrowableObjectArray::PrintJSONImpl(JSONStream* stream,
}
{
JSONArray jsarr(&jsobj, "elements");
+ Object& element = Object::Handle();
for (intptr_t index = 0; index < Length(); index++) {
JSONObject jselement(&jsarr);
jselement.AddProperty("index", index);
- Object& element = Object::Handle(At(index));
+ element = At(index);
jselement.AddProperty("value", element);
}
}
@@ -19720,8 +19722,11 @@ RawLinkedHashMap* LinkedHashMap::NewUninitialized(Heap::Space space) {
const char* LinkedHashMap::ToCString() const {
- // TODO(koda): Print key/value pairs.
- return "_LinkedHashMap";
+ const char* format = "_LinkedHashMap len:%" Pd;
+ intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1;
koda 2015/06/02 16:42:36 Use Thread::Current()->zone()->PrintToString(...)
rmacnak 2015/06/02 17:33:31 Much nicer. Updated Array::ToCString as well.
+ char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
+ OS::SNPrint(chars, len, format, Length());
+ return chars;
}
@@ -19730,11 +19735,22 @@ void LinkedHashMap::PrintJSONImpl(JSONStream* stream, bool ref) const {
PrintSharedInstanceJSON(&jsobj, ref);
jsobj.AddProperty("kind", "Map");
jsobj.AddServiceId(*this);
- // TODO(koda): Print length.
+ jsobj.AddProperty("length", Length());
if (ref) {
return;
}
- // TODO(koda): Print key/value pairs.
+ {
+ JSONArray jsarr(&jsobj, "associations");
+ Object& object = Object::Handle();
+ LinkedHashMap::Iterator iterator(*this);
+ while (iterator.MoveNext()) {
+ JSONObject jsassoc(&jsarr);
+ object = iterator.CurrentKey();
+ jsassoc.AddProperty("key", object);
+ object = iterator.CurrentValue();
+ jsassoc.AddProperty("value", object);
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698