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

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

Issue 2283863003: Converted Observatory object-pool-view element (Closed)
Patch Set: Created 4 years, 4 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 ce6b571b0c99cd3ec64865b93e083201158348df..fc7a087090fa4ac34cc62ff38bacba78a70f8ee4 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -3609,11 +3609,11 @@ class LocalVarDescriptors extends ServiceObject {
}
}
-class ObjectPool extends HeapObject implements M.ObjectPoolRef {
+class ObjectPool extends HeapObject implements M.ObjectPool {
bool get immutable => false;
@observable int length;
- @observable List entries;
+ @observable List<ObjectPoolEntry> entries;
ObjectPool._empty(ServiceObjectOwner owner) : super._empty(owner);
@@ -3625,8 +3625,45 @@ class ObjectPool extends HeapObject implements M.ObjectPoolRef {
if (mapIsRef) {
return;
}
- entries = map['_entries'];
+ entries = map['_entries'].map((map) => new ObjectPoolEntry(map));
+ }
+}
+
+class ObjectPoolEntry implements M.ObjectPoolEntry {
+ final int offset;
+ final M.ObjectPoolEntryKind kind;
+ final M.ObjectRef asObject;
+ final int asInteger;
+
+ factory ObjectPoolEntry(map) {
+ M.ObjectPoolEntryKind kind = stringToObjectPoolEntryKind(map['kind']);
+ int offset = map['offset'];
+ switch (kind) {
+ case M.ObjectPoolEntryKind.object:
+ return new ObjectPoolEntry._fromObject(map['value'], offset);
+ default:
+ return new ObjectPoolEntry._fromInteger(kind, map['value'], offset);
+ }
+ }
+
+ ObjectPoolEntry._fromObject(this.asObject, this.offset)
+ : kind = M.ObjectPoolEntryKind.object,
+ asInteger = null;
+
+ ObjectPoolEntry._fromInteger(this.kind, this.asInteger, this.offset)
+ : asObject = null;
+}
+
+M.ObjectPoolEntryKind stringToObjectPoolEntryKind(String kind) {
+ switch (kind) {
+ case 'Object':
+ return M.ObjectPoolEntryKind.object;
+ case 'Immediate':
+ return M.ObjectPoolEntryKind.immediate;
+ case 'NativeEntry':
+ return M.ObjectPoolEntryKind.nativeEntry;
}
+ throw new Exception('Unknown ObjectPoolEntryKind ($kind)');
}
class ICData extends HeapObject implements M.ICData {

Powered by Google App Engine
This is Rietveld 408576698