Index: runtime/vm/object.h |
=================================================================== |
--- runtime/vm/object.h (revision 24693) |
+++ runtime/vm/object.h (working copy) |
@@ -5830,6 +5830,28 @@ |
}; |
+class MirrorReference : public Instance { |
+ public: |
+ RawObject* referent() const { |
+ return raw_ptr()->referent_; |
+ } |
+ |
+ void set_referent(const Object& referent) const { |
+ StorePointer(&raw_ptr()->referent_, referent.raw()); |
+ } |
+ |
+ static RawMirrorReference* New(Heap::Space space = Heap::kNew); |
+ |
+ static intptr_t InstanceSize() { |
+ return RoundedAllocationSize(sizeof(RawMirrorReference)); |
+ } |
+ |
+ private: |
+ FINAL_HEAP_OBJECT_IMPLEMENTATION(MirrorReference, Instance); |
+ friend class Class; |
+}; |
+ |
+ |
// Breaking cycles and loops. |
RawClass* Object::clazz() const { |
uword raw_value = reinterpret_cast<uword>(raw_); |