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.
5 #ifndef CLASS_REQUIRES_TRACE_METHOD_H_
6 #define CLASS_REQUIRES_TRACE_METHOD_H_
8 #include "heap/stubs.h"
15 DISALLOW_ALLOCATION();
17 Member
<HeapObject
> m_obj
;
20 class HeapObject
: public GarbageCollected
<HeapObject
> {
25 class Mixin
: public GarbageCollectedMixin
{
27 virtual void trace(Visitor
*) override
;
31 class HeapObjectMixin
: public GarbageCollected
<HeapObjectMixin
>, public Mixin
{
32 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin
);
35 class Mixin2
: public Mixin
{
37 virtual void trace(Visitor
*) override
;
40 class HeapObjectMixin2
41 : public GarbageCollected
<HeapObjectMixin2
>, public Mixin2
{
42 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin2
);
45 class Mixin3
: public Mixin
{
47 virtual void trace(Visitor
*) override
;
50 class HeapObjectMixin3
51 : public GarbageCollected
<HeapObjectMixin3
>, public Mixin
{
52 USING_GARBAGE_COLLECTED_MIXIN(HeapObjectMixin2
);
54 virtual void trace(Visitor
*) override
;