Chromium Code Reviews| Index: runtime/vm/object.cc |
| =================================================================== |
| --- runtime/vm/object.cc (revision 43463) |
| +++ runtime/vm/object.cc (working copy) |
| @@ -20123,6 +20123,7 @@ |
| intptr_t frame_index) { |
| const char* kFormatWithCol = "#%-6d %s (%s:%d:%d)\n"; |
| const char* kFormatNoCol = "#%-6d %s (%s:%d)\n"; |
| + const char* kFormatNoLine = "#%-6d %s (%s)\n"; |
| const intptr_t token_pos = code.GetTokenIndexOfPC(pc); |
| const Script& script = Script::Handle(isolate, function.script()); |
| const String& function_name = |
| @@ -20148,7 +20149,7 @@ |
| frame_index, |
| function_name.ToCString(), |
| url.ToCString(), line, column); |
| - } else { |
| + } else if (line >= 0) { |
|
hausner
2015/02/04 18:34:13
I believe line is always >= 0 (> 0 actually). GetT
Florian Schneider
2015/02/05 09:55:42
Oh yes, forgot to check that token_pos > 0 above.
|
| len = OS::SNPrint(NULL, 0, kFormatNoCol, |
| frame_index, function_name.ToCString(), |
| url.ToCString(), line); |
| @@ -20156,6 +20157,14 @@ |
| OS::SNPrint(chars, (len + 1), kFormatNoCol, |
| frame_index, function_name.ToCString(), |
| url.ToCString(), line); |
| + } else { |
| + len = OS::SNPrint(NULL, 0, kFormatNoLine, |
| + frame_index, function_name.ToCString(), |
| + url.ToCString()); |
| + chars = isolate->current_zone()->Alloc<char>(len + 1); |
| + OS::SNPrint(chars, (len + 1), kFormatNoLine, |
| + frame_index, function_name.ToCString(), |
| + url.ToCString()); |
| } |
| frame_strings->Add(chars); |
| return len; |