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

Unified Diff: runtime/bin/vmstats/isolate_list.dart

Issue 14308006: Resubmission of 21573, with corrected strndup call. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 8 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
« no previous file with comments | « runtime/bin/vmstats/bargraph.dart ('k') | runtime/bin/vmstats/vmstats.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/vmstats/isolate_list.dart
===================================================================
--- runtime/bin/vmstats/isolate_list.dart (revision 21575)
+++ runtime/bin/vmstats/isolate_list.dart (working copy)
@@ -17,6 +17,7 @@
static const String NEW_SPACE = 'new_space';
static const String OLD_SPACE = 'old_space';
static const String STACK_FRAME = 'stack_frame';
+ static const String EMPTY_STACK_FRAME = 'empty_stack_frame';
static const String STACK_LIMIT = 'stack_limit';
static const String STACK_TRACE = 'stack_trace';
static const String STACK_TRACE_TITLE = 'stack_trace_title';
@@ -58,7 +59,7 @@
stacktrace.classes.addAll([STACK_TRACE, HIDDEN]);
stacktraceCell.children.add(stacktrace);
- isolateRow.onClick.listen((e) => toggle(isolateRow));
+ isolateRow.onClick.listen((e) => toggleRow(isolateRow));
updateIsolateDetails(isolate, isolateRow);
}
}
@@ -73,20 +74,28 @@
title.text = "Stack Trace";
element.children.add(title);
- var stackIterator = response['stacktrace'].iterator;
- var i = 0;
- while (stackIterator.moveNext()) {
- i++;
- var frame = stackIterator.current;
- var frameElement = new DivElement();
- frameElement.$dom_className = STACK_FRAME;
- var text = '$i: ${frame["url"]}:${frame["line"]}: ${frame["function"]}';
- var code = frame["code"];
- if (code['optimized']) {
- text = '$text (optimized)';
+ var stackTrace = response['stacktrace'];
+ if (stackTrace.length > 0) {
+ var stackIterator = response['stacktrace'].iterator;
+ var i = 0;
+ while (stackIterator.moveNext()) {
+ i++;
+ var frame = stackIterator.current;
+ var frameElement = new DivElement();
+ var text = '$i: ${frame["url"]}:${frame["line"]}: ${frame["function"]}';
+ var code = frame["code"];
+ if (code['optimized']) {
+ text = '$text (optimized)';
+ }
+ frameElement.text = text;
+ frameElement.$dom_className = STACK_FRAME;
+ element.children.add(frameElement);
}
- frameElement.text = text;
- element.children.add(frameElement);
+ } else {
+ DivElement noStack = new DivElement();
+ noStack.$dom_className = EMPTY_STACK_FRAME;
+ noStack.text = "<no stack>";
+ element.children.add(noStack);
}
}
@@ -114,12 +123,13 @@
(String response) => setStacktrace(stackTrace, response));
}
- void toggle(TableRowElement row) {
- var details = row.query('.$DETAILS');
- details.classes.toggle(VISIBLE);
- details.classes.toggle(HIDDEN);
- var stacktrace = row.query('.$ISOLATE_STACKTRACE_COLUMN');
- stacktrace.classes.toggle(VISIBLE);
- stacktrace.classes.toggle(HIDDEN);
+ void toggleRow(TableRowElement row) {
+ toggleElement(row.query('.$DETAILS'));
+ toggleElement(row.query('.$ISOLATE_STACKTRACE_COLUMN'));
}
+
+ void toggleElement(Element e) {
+ e.classes.toggle(VISIBLE);
+ e.classes.toggle(HIDDEN);
+ }
}
« no previous file with comments | « runtime/bin/vmstats/bargraph.dart ('k') | runtime/bin/vmstats/vmstats.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698