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

Unified Diff: runtime/bin/vmservice/client/lib/src/observatory/model.dart

Issue 182703003: Cleanup native, collected, and stub code handling in profiler (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 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/bin/vmservice/client/lib/src/observatory/model.dart
diff --git a/runtime/bin/vmservice/client/lib/src/observatory/model.dart b/runtime/bin/vmservice/client/lib/src/observatory/model.dart
index 4a6f3e40d71d496f90da8e5caa6edddde25481b5..92652308bb6df57a72858a48e1d4b87e84dd6cb6 100644
--- a/runtime/bin/vmservice/client/lib/src/observatory/model.dart
+++ b/runtime/bin/vmservice/client/lib/src/observatory/model.dart
@@ -88,12 +88,7 @@ class Code extends Observable {
startAddress = int.parse(map['start'], radix: 16),
endAddress = int.parse(map['end'], radix: 16) {
functionRef = toObservable(map['function']);
- codeRef = toObservable({
- 'type': '@Code',
- 'id': map['id'],
- 'name': map['name'],
- 'user_name': map['user_name']
- });
+ codeRef = toObservable(map);
name = map['name'];
userName = map['user_name'];
if (map['disassembly'] != null) {
@@ -107,41 +102,20 @@ class Code extends Observable {
var endAddress;
var name;
var userName;
- var codeRef;
- var functionRef;
- // Initial extraction of startAddress, endAddress, and name depends on what
- // kind of code this is and whether or not the code has been collected.
- if (kind == CodeKind.Dart) {
- var code = map['code'];
- if (code != null) {
- // Extract from Dart code.
- startAddress = int.parse(code['start'], radix:16);
- endAddress = int.parse(code['end'], radix:16);
- name = code['name'];
- userName = code['user_name'];
- codeRef = toObservable({
- 'type': '@Code',
- 'id': code['id'],
- 'name': name,
- 'user_name': userName
- });
- functionRef = toObservable(code['function']);
- }
- }
- if (startAddress == null) {
- // Extract from Profile code.
- // This is either a native or collected piece of code.
- startAddress = int.parse(map['start'], radix:16);
- endAddress = int.parse(map['end'], radix: 16);
- name = map['name'];
- userName = name;
- }
+ var codeRef = map['code'];
+ assert(codeRef != null);
+ startAddress = int.parse(codeRef['start'], radix:16);
+ endAddress = int.parse(codeRef['end'], radix:16);
+ name = codeRef['name'];
+ userName = codeRef['user_name'];
var code = new Code(kind, name, startAddress, endAddress);
code.codeRef = codeRef;
- code.functionRef = functionRef;
+ code.functionRef = toObservable(codeRef['function']);;
code.userName = userName;
- if (map['disassembly'] != null) {
- code._loadInstructions(map['disassembly']);
+ if (codeRef['disassembly'] != null) {
+ code._loadInstructions(codeRef['disassembly']);
+ // Throw the JSON version away after loading the disassembly.
+ codeRef['disassembly'] = null;
}
return code;
}
@@ -284,13 +258,7 @@ class Profile {
}
int _extractCodeStartAddress(Map code) {
- var kind = CodeKind.fromString(code['kind']);
- if ((kind == CodeKind.Dart) && (code['code'] != null)) {
- // Start address is inside the dart code map.
- return int.parse(code['code']['start'], radix:16);
- }
- // Start address is inside the profile code map.
- return int.parse(code['start'], radix:16);
+ return int.parse(code['code']['start'], radix:16);
}
void _processCode(Map profileCode) {

Powered by Google App Engine
This is Rietveld 408576698