Index: runtime/vm/dart_api_message.h |
diff --git a/runtime/vm/dart_api_message.h b/runtime/vm/dart_api_message.h |
index 84d44a8cf35b10df13be9350e1156eec2f9a11b7..d215ab01f2a1884d65399249baded3e3e9f52693 100644 |
--- a/runtime/vm/dart_api_message.h |
+++ b/runtime/vm/dart_api_message.h |
@@ -14,13 +14,26 @@ namespace dart { |
// data. These are objects that we need to process in order to |
// generate the Dart_CObject graph but that we don't want to expose in |
// that graph. |
-// TODO(sjesse): Remove this when message serialization format is |
-// updated. |
struct Dart_CObject_Internal : public Dart_CObject { |
enum Type { |
kTypeArguments = Dart_CObject::kNumberOfTypes, |
kDynamicType, |
+ kClass, |
+ kView, |
+ kUninitialized, |
}; |
+ struct Dart_CObject_Internal* cls; |
+ union { |
+ struct { |
+ struct _Dart_CObject* library_url; |
+ struct _Dart_CObject* class_name; |
+ } as_class; |
+ struct { |
+ struct _Dart_CObject* buffer; |
+ int offset_in_bytes; |
+ int length; |
+ } as_view; |
+ } internal; |
}; |
@@ -79,6 +92,11 @@ class ApiMessageReader : public BaseReader { |
Dart_CObject* AllocateDartCObjectUint8Array(intptr_t length); |
// Allocates a C array of Dart_CObject objects. |
Dart_CObject* AllocateDartCObjectArray(intptr_t length); |
+ // Allocates a Dart_CObject_Internal object with the specified type. |
+ Dart_CObject_Internal* AllocateDartCObjectInternal( |
+ Dart_CObject_Internal::Type type); |
+ // Allocates a Dart_CObject_Internal object for a class object. |
+ Dart_CObject_Internal* AllocateDartCObjectClass(); |
// Allocates a backwards reference node. |
BackRefNode* AllocateBackRefNode(Dart_CObject* ref, DeserializeState state); |