| Index: runtime/vm/object.cc
|
| ===================================================================
|
| --- runtime/vm/object.cc (revision 28592)
|
| +++ runtime/vm/object.cc (working copy)
|
| @@ -9528,7 +9528,22 @@
|
|
|
|
|
| const char* Context::ToCString() const {
|
| - return "Context";
|
| + const Context& parent_ctx = Context::Handle(parent());
|
| + if (parent_ctx.IsNull()) {
|
| + const char* kFormat = "Context num_variables:% " Pd "";
|
| + intptr_t len = OS::SNPrint(NULL, 0, kFormat, num_variables()) + 1;
|
| + char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
|
| + OS::SNPrint(chars, len, kFormat, num_variables());
|
| + return chars;
|
| + } else {
|
| + const char* parent_str = parent_ctx.ToCString();
|
| + const char* kFormat = "Context num_variables:% " Pd " parent:{ %s }";
|
| + intptr_t len = OS::SNPrint(NULL, 0, kFormat,
|
| + num_variables(), parent_str) + 1;
|
| + char* chars = Isolate::Current()->current_zone()->Alloc<char>(len);
|
| + OS::SNPrint(chars, len, kFormat, num_variables(), parent_str);
|
| + return chars;
|
| + }
|
| }
|
|
|
|
|
|
|