1aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko// Copyright 2014 The Chromium Authors. All rights reserved.
2aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko// Use of this source code is governed by a BSD-style license that can be
3aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko// found in the LICENSE file.
4aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko
5aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko#ifndef OWN_PTR_TO_GC_MANAGED_CLASS_H_
6aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko#define OWN_PTR_TO_GC_MANAGED_CLASS_H_
7aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko
8aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko#include "heap/stubs.h"
9aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko
1027c0bb04bfdbf82b1d7e6670b8e806451e8ce2c3Dmitri Gribenkonamespace blink {
1127c0bb04bfdbf82b1d7e6670b8e806451e8ce2c3Dmitri Gribenko
12aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenkoclass HeapObject;
136fd7d3067dd06584ef3940e88e31fea1a0e83588Dmitri Gribenko
14aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenkoclass PartObject {
15aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko    DISALLOW_ALLOCATION();
16aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenkoprivate:
17aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko    OwnPtr<HeapObject> m_obj;
18aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko};
192d44d77fed3200e2eff289f55493317e90d3398cDmitri Gribenko
20aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenkoclass HeapObject : public GarbageCollectedFinalized<HeapObject> {
21f50555eedef33fd5a67d369aa0ae8a6f1d201543Dmitri Gribenkopublic:
221952354bd376062c3ab3d328c0fc6c36530c9309Dmitri Gribenko    void trace(Visitor*);
23f50555eedef33fd5a67d369aa0ae8a6f1d201543Dmitri Gribenkoprivate:
24f50555eedef33fd5a67d369aa0ae8a6f1d201543Dmitri Gribenko    Vector<OwnPtr<HeapObject> > m_objs;
25f50555eedef33fd5a67d369aa0ae8a6f1d201543Dmitri Gribenko    OwnPtr<HeapVector<Member<HeapObject> > > m_objs2;
26f50555eedef33fd5a67d369aa0ae8a6f1d201543Dmitri Gribenko};
27aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko
28aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko}
29aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko
30aa0cd85838f2a024e589ea4e8c2094130065af21Dmitri Gribenko#endif
31c50a0e3900f1b44503be48457508af372f4dd05aAbramo Bagnara