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 PERSISTENT_FIELD_IN_GC_MANAGED_CLASS_H_ 6 #define PERSISTENT_FIELD_IN_GC_MANAGED_CLASS_H_ 7 8 #include "heap/stubs.h" 9 10 namespace blink { 11 12 class HeapObject; 13 14 class PartObject { 15 DISALLOW_NEW(); 16 private: 17 Persistent<HeapObject> m_obj; 18 }; 19 20 class HeapObject : public GarbageCollected<HeapObject> { 21 public: 22 void Trace(Visitor*); 23 private: 24 PartObject m_part; 25 HeapVector<PartObject> m_parts; 26 PersistentHeapVector<Member<HeapObject> > m_objs; 27 WeakPersistent<HeapObject> m_weakPersistent; 28 }; 29 30 } 31 32 #endif 33