Chromium Code Reviews| Index: runtime/vm/raw_object.h |
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h |
| index 349ad591e30cc73ac2bb7b5209ce0db66c02d8c0..f4b80b336f162ba78d1223c7868d99e744fec58d 100644 |
| --- a/runtime/vm/raw_object.h |
| +++ b/runtime/vm/raw_object.h |
| @@ -31,6 +31,7 @@ namespace dart { |
| V(Namespace) \ |
| V(Code) \ |
| V(Instructions) \ |
| + V(ObjectPool) \ |
| V(PcDescriptors) \ |
| V(Stackmap) \ |
| V(LocalVarDescriptors) \ |
| @@ -1002,6 +1003,27 @@ class RawCode : public RawObject { |
| }; |
| +class RawObjectPool : public RawObject { |
| + RAW_HEAP_OBJECT_IMPLEMENTATION(ObjectPool); |
| + |
| + intptr_t length_; |
| + RawTypedData* info_array_; |
|
Florian Schneider
2015/06/09 13:23:08
This int8-array holds the entry-type for each entr
|
| + |
| + struct Entry { |
| + union { |
| + RawObject* raw_obj_; |
| + uword raw_value_; |
| + }; |
| + }; |
| + Entry* data() { OPEN_ARRAY_START(Entry, Entry); } |
| + Entry const* data() const { OPEN_ARRAY_START(Entry, Entry); } |
| + |
| + Entry* first_entry() { return &ptr()->data()[0]; } |
| + |
| + friend class Object; |
| +}; |
| + |
| + |
| class RawInstructions : public RawObject { |
| RAW_HEAP_OBJECT_IMPLEMENTATION(Instructions); |
| @@ -1009,7 +1031,7 @@ class RawInstructions : public RawObject { |
| return reinterpret_cast<RawObject**>(&ptr()->code_); |
| } |
| RawCode* code_; |
| - RawArray* object_pool_; |
| + RawObjectPool* object_pool_; |
| RawObject** to() { |
| return reinterpret_cast<RawObject**>(&ptr()->object_pool_); |
| } |
| @@ -1780,6 +1802,8 @@ class RawTypedData : public RawInstance { |
| friend class Object; |
| friend class Instance; |
| friend class SnapshotReader; |
| + friend class ObjectPool; |
| + friend class RawObjectPool; |
| }; |
| @@ -2112,6 +2136,7 @@ inline bool RawObject::IsVariableSizeClassId(intptr_t index) { |
| (index == kContextCid) || |
| (index == kTypeArgumentsCid) || |
| (index == kInstructionsCid) || |
| + (index == kObjectPoolCid) || |
| (index == kPcDescriptorsCid) || |
| (index == kStackmapCid) || |
| (index == kLocalVarDescriptorsCid) || |