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

Unified Diff: runtime/observatory/lib/src/service/object.dart

Issue 2742333007: Add Observatory support for UnlinkedCall, SingleTargetCache and SubtypeTestCache. (Closed)
Patch Set: . Created 3 years, 9 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/observatory/lib/src/service/object.dart
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart
index 954f24e6a55799ead125c570499d447097bb3dcc..9e54b4aac7339c64025b3afc7f022bfcf5131590 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -79,8 +79,8 @@ class NetworkRpcException extends RpcException
String toString() => 'NetworkRpcException(${message})';
}
-Future<ServiceObject> ignoreNetworkErrors(
- Object error, [ServiceObject resultOnNetworkError = null]) {
+Future<ServiceObject> ignoreNetworkErrors(Object error,
+ [ServiceObject resultOnNetworkError = null]) {
if (error is NetworkRpcException) {
return new Future.value(resultOnNetworkError);
}
@@ -261,9 +261,18 @@ abstract class ServiceObject {
case 'PcDescriptors':
obj = new PcDescriptors._empty(owner);
break;
+ case 'SingleTargetCache':
+ obj = new SingleTargetCache._empty(owner);
+ break;
+ case 'SubtypeTestCache':
+ obj = new SubtypeTestCache._empty(owner);
+ break;
case 'TokenStream':
obj = new TokenStream._empty(owner);
break;
+ case 'UnlinkedCall':
+ obj = new UnlinkedCall._empty(owner);
+ break;
}
break;
case 'Event':
@@ -879,8 +888,8 @@ abstract class VM extends ServiceObjectOwner implements M.VM {
'streamId': streamId,
};
// Ignore network errors on stream listen.
- return invokeRpc('streamListen', params).catchError(
- (e) => ignoreNetworkErrors(e));
+ return invokeRpc('streamListen', params)
+ .catchError((e) => ignoreNetworkErrors(e));
}
Future<ServiceObject> _streamCancel(String streamId) {
@@ -888,8 +897,8 @@ abstract class VM extends ServiceObjectOwner implements M.VM {
'streamId': streamId,
};
// Ignore network errors on stream cancel.
- return invokeRpc('streamCancel', params).catchError(
- (e) => ignoreNetworkErrors(e));
+ return invokeRpc('streamCancel', params)
+ .catchError((e) => ignoreNetworkErrors(e));
}
// A map from stream id to event stream state.
@@ -1349,9 +1358,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate {
return invokeRpc('getSourceReport', params);
}
- Future<ServiceMap> reloadSources(
- {String rootLibUri,
- bool pause}) {
+ Future<ServiceMap> reloadSources({String rootLibUri, bool pause}) {
Map<String, dynamic> params = <String, dynamic>{};
if (rootLibUri != null) {
params['rootLibUri'] = rootLibUri;
@@ -1560,8 +1567,10 @@ class Isolate extends ServiceObjectOwner implements M.Isolate {
static String _rootsToString(M.HeapSnapshotRoots roots) {
switch (roots) {
- case M.HeapSnapshotRoots.user: return "User";
- case M.HeapSnapshotRoots.vm: return "VM";
+ case M.HeapSnapshotRoots.user:
+ return "User";
+ case M.HeapSnapshotRoots.vm:
+ return "VM";
}
return null;
}
@@ -1571,8 +1580,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate {
_snapshotFetch = new StreamController.broadcast();
// isolate.vm.streamListen('_Graph');
isolate.invokeRpcNoUpgrade('_requestHeapSnapshot',
- {'roots': _rootsToString(roots),
- 'collectGarbage': collectGarbage});
+ {'roots': _rootsToString(roots), 'collectGarbage': collectGarbage});
}
return _snapshotFetch.stream;
}
@@ -1653,7 +1661,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate {
}
threads.clear();
- if(map['_threads'] != null) {
+ if (map['_threads'] != null) {
threads.addAll(map['_threads']);
}
@@ -3117,7 +3125,7 @@ class Thread extends ServiceObject implements M.Thread {
void _update(Map map, bool mapIsRef) {
String rawKind = map['kind'];
- switch(rawKind) {
+ switch (rawKind) {
case "kUnknownTask":
_kind = M.ThreadKind.unknownTask;
_kindString = 'unknown';
@@ -3767,14 +3775,8 @@ class LocalVarDescriptor implements M.LocalVarDescriptorsRef {
final int scopeId;
final String kind;
- LocalVarDescriptor(this.id,
- this.name,
- this.index,
- this.declarationPos,
- this.beginPos,
- this.endPos,
- this.scopeId,
- this.kind);
+ LocalVarDescriptor(this.id, this.name, this.index, this.declarationPos,
+ this.beginPos, this.endPos, this.scopeId, this.kind);
}
class LocalVarDescriptors extends ServiceObject {
@@ -3888,6 +3890,66 @@ class ICData extends HeapObject implements M.ICData {
}
}
+class UnlinkedCall extends HeapObject implements M.UnlinkedCall {
+ String selector;
+ Instance argumentsDescriptor;
+
+ bool get immutable => false;
+
+ UnlinkedCall._empty(ServiceObjectOwner owner) : super._empty(owner);
+
+ void _update(Map map, bool mapIsRef) {
+ _upgradeCollection(map, isolate);
+ super._update(map, mapIsRef);
+
+ selector = map['_selector'];
+ if (mapIsRef) {
+ return;
+ }
+ argumentsDescriptor = map['_argumentsDescriptor'];
+ }
+}
+
+class SingleTargetCache extends HeapObject implements M.SingleTargetCache {
+ Code target;
+ int lowerLimit;
+ int upperLimit;
+
+ bool get immutable => false;
+
+ SingleTargetCache._empty(ServiceObjectOwner owner) : super._empty(owner);
+
+ void _update(Map map, bool mapIsRef) {
+ _upgradeCollection(map, isolate);
+ super._update(map, mapIsRef);
+
+ target = map['_target'];
+ if (mapIsRef) {
+ return;
+ }
+ lowerLimit = map['_lowerLimit'];
+ upperLimit = map['_upperLimit'];
+ }
+}
+
+class SubtypeTestCache extends HeapObject implements M.SubtypeTestCache {
+ Instance cache;
+
+ bool get immutable => false;
+
+ SubtypeTestCache._empty(ServiceObjectOwner owner) : super._empty(owner);
+
+ void _update(Map map, bool mapIsRef) {
+ _upgradeCollection(map, isolate);
+ super._update(map, mapIsRef);
+
+ if (mapIsRef) {
+ return;
+ }
+ cache = map['_cache'];
+ }
+}
+
class TypeArguments extends HeapObject implements M.TypeArguments {
HeapObject dartOwner;
String name;
@@ -4435,9 +4497,12 @@ class Frame extends ServiceObject implements M.Frame {
return M.FrameKind.regular;
}
switch (frameKind) {
- case 'Regular': return M.FrameKind.regular;
- case 'AsyncCausal': return M.FrameKind.asyncCausal;
- case 'AsyncSuspensionMarker': return M.FrameKind.asyncSuspensionMarker;
+ case 'Regular':
+ return M.FrameKind.regular;
+ case 'AsyncCausal':
+ return M.FrameKind.asyncCausal;
+ case 'AsyncSuspensionMarker':
+ return M.FrameKind.asyncSuspensionMarker;
default:
throw new UnsupportedError('Unknown FrameKind: $frameKind');
}
@@ -4456,7 +4521,7 @@ class Frame extends ServiceObject implements M.Frame {
Future<String> toUserString() async {
if (function != null) {
return "Frame([$kind] ${function.qualifiedName} "
- "${await location.toUserString()})";
+ "${await location.toUserString()})";
} else if (location != null) {
return "Frame([$kind] ${await location.toUserString()}";
} else {
« no previous file with comments | « runtime/observatory/lib/src/repositories/unlinked_call.dart ('k') | runtime/observatory/observatory_sources.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698