1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef DESTRUCTOR_ACCESS_FINALIZED_FIELD_H_ 6 #define DESTRUCTOR_ACCESS_FINALIZED_FIELD_H_ 7 8 #include "heap/stubs.h" 9 10 namespace blink { 11 12 class Other : public RefCounted<Other> { 13 public: foo()14 bool foo() { return true; } 15 }; 16 17 class HeapObject; 18 19 class PartOther { 20 ALLOW_ONLY_INLINE_ALLOCATION(); 21 public: 22 void trace(Visitor*); 23 obj()24 HeapObject* obj() { return m_obj; } 25 26 private: 27 Member<HeapObject> m_obj; 28 }; 29 30 class HeapObject : public GarbageCollectedFinalized<HeapObject> { 31 public: 32 ~HeapObject(); 33 void trace(Visitor*); foo()34 bool foo() { return true; } bar(HeapObject *)35 void bar(HeapObject*) { } 36 private: 37 RefPtr<Other> m_ref; 38 Member<HeapObject> m_obj; 39 Vector<Member<HeapObject> > m_objs; 40 PartOther m_part; 41 }; 42 43 } 44 45 #endif 46