Chromium Code Reviews| Index: runtime/vm/raw_object.h |
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h |
| index 8f6f624160be228c177535c1b1b0afae06aad9e0..6df1f2357b0d945a8a86a05511ae627b1450fad6 100644 |
| --- a/runtime/vm/raw_object.h |
| +++ b/runtime/vm/raw_object.h |
| @@ -609,6 +609,7 @@ CLASS_LIST_TYPED_DATA(DEFINE_IS_CID) |
| friend class Api; |
| friend class ApiMessageReader; // GetClassId |
| + friend class Serializer; // GetClassId |
| friend class Array; |
| friend class Bigint; |
| friend class ByteBuffer; |
| @@ -644,6 +645,7 @@ CLASS_LIST_TYPED_DATA(DEFINE_IS_CID) |
| friend class AssemblyInstructionsWriter; |
| friend class BlobInstructionsWriter; |
| friend class SnapshotReader; |
| + friend class Deserializer; |
| friend class SnapshotWriter; |
| friend class String; |
| friend class Type; // GetClassId |
| @@ -730,6 +732,9 @@ class RawClass : public RawObject { |
| friend class RawInstance; |
| friend class RawInstructions; |
| friend class SnapshotReader; |
| + friend class ClassSerializationCluster; |
| + friend class ClassDeserializationCluster; |
| + friend class InstanceSerializationCluster; |
| }; |
| @@ -745,6 +750,9 @@ class RawUnresolvedClass : public RawObject { |
| return reinterpret_cast<RawObject**>(&ptr()->ident_); |
| } |
| TokenPosition token_pos_; |
| + |
| + friend class UnresolvedClassSerializationCluster; |
|
Florian Schneider
2016/06/14 20:32:20
Have you tried making these friend declarations pa
rmacnak
2016/06/21 17:53:03
Done.
|
| + friend class UnresolvedClassDeserializationCluster; |
| }; |
| @@ -776,6 +784,8 @@ class RawTypeArguments : public RawObject { |
| } |
| friend class SnapshotReader; |
| + friend class TypeArgumentsSerializationCluster; |
| + friend class TypeArgumentsDeserializationCluster; |
| }; |
| @@ -794,6 +804,8 @@ class RawPatchClass : public RawObject { |
| } |
| friend class Function; |
| + friend class PatchClassSerializationCluster; |
| + friend class PatchClassDeserializationCluster; |
| }; |
| @@ -829,7 +841,11 @@ class RawFunction : public RawObject { |
| // So that the SkippedCodeFunctions::DetachCode can null out the code fields. |
| friend class SkippedCodeFunctions; |
| friend class Class; |
| + friend class FunctionSerializationCluster; |
| + friend class FunctionDeserializationCluster; |
| + |
| RAW_HEAP_OBJECT_IMPLEMENTATION(Function); |
| + |
| static bool ShouldVisitCode(RawCode* raw_code); |
| static bool CheckUsageCounter(RawFunction* raw_fun); |
| @@ -884,6 +900,8 @@ class RawClosureData : public RawObject { |
| } |
| friend class Function; |
| + friend class ClosureDataSerializationCluster; |
| + friend class ClosureDataDeserializationCluster; |
| }; |
| @@ -900,6 +918,9 @@ class RawRedirectionData : public RawObject { |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->target_); |
| } |
| + |
| + friend class RedirectionDataSerializationCluster; |
| + friend class RedirectionDataDeserializationCluster; |
| }; |
| @@ -956,6 +977,9 @@ class RawField : public RawObject { |
| int8_t guarded_list_length_in_object_offset_; |
| uint8_t kind_bits_; // static, final, const, has initializer.... |
| + |
| + friend class FieldSerializationCluster; |
| + friend class FieldDeserializationCluster; |
| }; |
| @@ -973,6 +997,8 @@ class RawLiteralToken : public RawObject { |
| Token::Kind kind_; // The literal kind (string, integer, double). |
| friend class SnapshotReader; |
| + friend class LiteralTokenSerializationCluster; |
| + friend class LiteralTokenDeserializationCluster; |
| }; |
| @@ -990,6 +1016,8 @@ class RawTokenStream : public RawObject { |
| } |
| friend class SnapshotReader; |
| + friend class TokenStreamSerializationCluster; |
| + friend class TokenStreamDeserializationCluster; |
| }; |
| @@ -1032,6 +1060,9 @@ class RawScript : public RawObject { |
| int32_t col_offset_; |
| int8_t kind_; // Of type Kind. |
| int64_t load_timestamp_; |
| + |
| + friend class ScriptSerializationCluster; |
| + friend class ScriptDeserializationCluster; |
| }; |
| @@ -1079,6 +1110,8 @@ class RawLibrary : public RawObject { |
| friend class Class; |
| friend class Isolate; |
| + friend class LibrarySerializationCluster; |
| + friend class LibraryDeserializationCluster; |
| }; |
| @@ -1096,6 +1129,9 @@ class RawNamespace : public RawObject { |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->metadata_field_); |
| } |
| + |
| + friend class NamespaceSerializationCluster; |
| + friend class NamespaceDeserializationCluster; |
| }; |
| @@ -1161,6 +1197,9 @@ class RawCode : public RawObject { |
| friend class SkippedCodeFunctions; |
| friend class StackFrame; |
| friend class Profiler; |
| + friend class CodeSerializationCluster; |
| + friend class CodeDeserializationCluster; |
| + friend class FunctionDeserializationCluster; |
| }; |
| @@ -1183,6 +1222,8 @@ class RawObjectPool : public RawObject { |
| friend class Object; |
| friend class SnapshotReader; |
| + friend class ObjectPoolSerializationCluster; |
| + friend class ObjectPoolDeserializationCluster; |
| }; |
| @@ -1415,6 +1456,8 @@ class RawExceptionHandlers : public RawObject { |
| friend class Object; |
| friend class SnapshotReader; |
| + friend class ExceptionHandlersSerializationCluster; |
| + friend class ExceptionHandlersDeserializationCluster; |
| }; |
| @@ -1436,6 +1479,8 @@ class RawContext : public RawObject { |
| } |
| friend class SnapshotReader; |
| + friend class ContextSerializationCluster; |
| + friend class ContextDeserializationCluster; |
| }; |
| @@ -1480,6 +1525,8 @@ class RawContextScope : public RawObject { |
| friend class Object; |
| friend class RawClosureData; |
| friend class SnapshotReader; |
| + friend class ContextScopeSerializationCluster; |
| + friend class ContextScopeDeserializationCluster; |
| }; |
| @@ -1519,6 +1566,9 @@ class RawICData : public RawObject { |
| intptr_t tag_; // Debugging, verifying that the icdata is assigned to the |
| // same instruction again. Store -1 or Instruction::Tag. |
| #endif |
| + |
| + friend class ICDataSerializationCluster; |
| + friend class ICDataDeserializationCluster; |
| }; |
| @@ -1537,12 +1587,18 @@ class RawMegamorphicCache : public RawObject { |
| } |
| int32_t filled_entry_count_; |
| + |
| + friend class MegamorphicCacheSerializationCluster; |
| + friend class MegamorphicCacheDeserializationCluster; |
| }; |
| class RawSubtypeTestCache : public RawObject { |
| RAW_HEAP_OBJECT_IMPLEMENTATION(SubtypeTestCache); |
| RawArray* cache_; |
| + |
| + friend class SubtypeTestCacheSerializationCluster; |
| + friend class SubtypeTestCacheDeserializationCluster; |
| }; |
| @@ -1580,6 +1636,9 @@ class RawLanguageError : public RawError { |
| TokenPosition token_pos_; // Source position in script_. |
| bool report_after_token_; // Report message at or after the token. |
| int8_t kind_; // Of type LanguageError::Kind. |
| + |
| + friend class LanguageErrorSerializationCluster; |
| + friend class LanguageErrorDeserializationCluster; |
| }; |
| @@ -1594,6 +1653,9 @@ class RawUnhandledException : public RawError { |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->stacktrace_); |
| } |
| + |
| + friend class UnhandledExceptionSerializationCluster; |
| + friend class UnhandledExceptionDeserializationCluster; |
| }; |
| @@ -1614,6 +1676,9 @@ class RawUnwindError : public RawError { |
| class RawInstance : public RawObject { |
| RAW_HEAP_OBJECT_IMPLEMENTATION(Instance); |
| + |
| + friend class InstanceSerializationCluster; |
| + friend class InstanceDeserializationCluster; |
| }; |
| @@ -1648,6 +1713,9 @@ class RawLibraryPrefix : public RawInstance { |
| uint16_t num_imports_; // Number of library entries in libraries_. |
| bool is_deferred_load_; |
| bool is_loaded_; |
| + |
| + friend class LibraryPrefixSerializationCluster; |
| + friend class LibraryPrefixDeserializationCluster; |
| }; |
| @@ -1694,6 +1762,9 @@ class RawType : public RawAbstractType { |
| } |
| TokenPosition token_pos_; |
| int8_t type_state_; |
| + |
| + friend class TypeSerializationCluster; |
| + friend class TypeDeserializationCluster; |
| }; |
| @@ -1708,6 +1779,9 @@ class RawTypeRef : public RawAbstractType { |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->type_); |
| } |
| + |
| + friend class TypeRefSerializationCluster; |
| + friend class TypeRefDeserializationCluster; |
| }; |
| @@ -1726,6 +1800,9 @@ class RawTypeParameter : public RawAbstractType { |
| TokenPosition token_pos_; |
| int16_t index_; |
| int8_t type_state_; |
| + |
| + friend class TypeParameterSerializationCluster; |
| + friend class TypeParameterDeserializationCluster; |
| }; |
| @@ -1743,6 +1820,9 @@ class RawBoundedType : public RawAbstractType { |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->type_parameter_); |
| } |
| + |
| + friend class BoundedTypeSerializationCluster; |
| + friend class BoundedTypeDeserializationCluster; |
| }; |
| @@ -1777,6 +1857,9 @@ class RawClosure : public RawInstance { |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->context_); |
| } |
| + |
| + friend class ClosureSerializationCluster; |
| + friend class ClosureDeserializationCluster; |
| }; |
| @@ -1802,6 +1885,8 @@ class RawMint : public RawInteger { |
| friend class Api; |
| friend class SnapshotReader; |
| + friend class SmiMintSerializationCluster; |
| + friend class SmiMintDeserializationCluster; |
| }; |
| COMPILE_ASSERT(sizeof(RawMint) == 16); |
| @@ -1814,6 +1899,9 @@ class RawBigint : public RawInteger { |
| RawSmi* used_; |
| RawTypedData* digits_; |
| RawObject** to() { return reinterpret_cast<RawObject**>(&ptr()->digits_); } |
| + |
| + friend class BigintSerializationCluster; |
| + friend class BigintDeserializationCluster; |
| }; |
| @@ -1824,6 +1912,8 @@ class RawDouble : public RawNumber { |
| friend class Api; |
| friend class SnapshotReader; |
| + friend class DoubleSerializationCluster; |
| + friend class DoubleDeserializationCluster; |
| }; |
| COMPILE_ASSERT(sizeof(RawDouble) == 16); |
| @@ -1850,6 +1940,9 @@ class RawOneByteString : public RawString { |
| friend class ApiMessageReader; |
| friend class SnapshotReader; |
| + friend class OneByteStringSerializationCluster; |
| + friend class OneByteStringDeserializationCluster; |
| + friend class RODataSerializationCluster; |
| }; |
| @@ -1861,6 +1954,9 @@ class RawTwoByteString : public RawString { |
| const uint16_t* data() const { OPEN_ARRAY_START(uint16_t, uint16_t); } |
| friend class SnapshotReader; |
| + friend class TwoByteStringSerializationCluster; |
| + friend class TwoByteStringDeserializationCluster; |
| + friend class RODataSerializationCluster; |
| }; |
| @@ -1936,6 +2032,11 @@ class RawArray : public RawInstance { |
| return reinterpret_cast<RawObject**>(&ptr()->data()[length - 1]); |
| } |
| + friend class ArraySerializationCluster; |
| + friend class ArrayDeserializationCluster; |
| + friend class LinkedHashMapSerializationCluster; |
| + friend class LinkedHashMapDeserializationCluster; |
| + friend class Deserializer; |
| friend class RawCode; |
| friend class RawImmutableArray; |
| friend class SnapshotReader; |
| @@ -1969,6 +2070,8 @@ class RawGrowableObjectArray : public RawInstance { |
| } |
| friend class SnapshotReader; |
| + friend class GrowableObjectArraySerializationCluster; |
| + friend class GrowableObjectArrayDeserializationCluster; |
| }; |
| @@ -1988,8 +2091,9 @@ class RawLinkedHashMap : public RawInstance { |
| return reinterpret_cast<RawObject**>(&ptr()->deleted_keys_); |
| } |
| - |
| friend class SnapshotReader; |
| + friend class LinkedHashMapSerializationCluster; |
| + friend class LinkedHashMapDeserializationCluster; |
| }; |
| @@ -1999,6 +2103,7 @@ class RawFloat32x4 : public RawInstance { |
| ALIGN8 float value_[4]; |
| friend class SnapshotReader; |
| + |
| public: |
| float x() const { return value_[0]; } |
| float y() const { return value_[1]; } |
| @@ -2014,6 +2119,7 @@ class RawInt32x4 : public RawInstance { |
| ALIGN8 int32_t value_[4]; |
| friend class SnapshotReader; |
| + |
| public: |
| int32_t x() const { return value_[0]; } |
| int32_t y() const { return value_[1]; } |
| @@ -2029,6 +2135,7 @@ class RawFloat64x2 : public RawInstance { |
| ALIGN8 double value_[2]; |
| friend class SnapshotReader; |
| + |
| public: |
| double x() const { return value_[0]; } |
| double y() const { return value_[1]; } |
| @@ -2065,6 +2172,10 @@ class RawTypedData : public RawInstance { |
| friend class SnapshotReader; |
| friend class ObjectPool; |
| friend class RawObjectPool; |
| + friend class TypedDataSerializationCluster; |
| + friend class TypedDataDeserializationCluster; |
| + friend class ObjectPoolSerializationCluster; |
| + friend class ObjectPoolDeserializationCluster; |
| }; |
| @@ -2080,6 +2191,8 @@ class RawExternalTypedData : public RawInstance { |
| friend class TokenStream; |
| friend class RawTokenStream; |
| + friend class ExternalTypedDataSerializationCluster; |
| + friend class ExternalTypedDataDeserializationCluster; |
| }; |
| // VM implementations of the basic types in the isolate. |
| @@ -2129,6 +2242,9 @@ class RawStacktrace : public RawInstance { |
| } |
| // False for pre-allocated stack trace (used in OOM and Stack overflow). |
| bool expand_inlined_; |
| + |
| + friend class StacktraceSerializationCluster; |
| + friend class StacktraceDeserializationCluster; |
| }; |
| @@ -2157,6 +2273,9 @@ class RawRegExp : public RawInstance { |
| // type: Uninitialized, simple or complex. |
| // flags: Represents global/local, case insensitive, multiline. |
| int8_t type_flags_; |
| + |
| + friend class RegExpSerializationCluster; |
| + friend class RegExpDeserializationCluster; |
| }; |