15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef REF_PTR_TO_GC_MANAGED_CLASS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define REF_PTR_TO_GC_MANAGED_CLASS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "heap/stubs.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace blink { 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class HeapObject; 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PartObject { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_ALLOCATION(); 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)private: 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RefPtr<HeapObject> m_obj; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HeapObject : public GarbageCollectedFinalized<HeapObject> { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public: 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void trace(Visitor*); 23a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)private: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PartObject m_part; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Vector<RefPtr<HeapObject> > m_objs; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)