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 TRACE_TEMPLATED_SUPER_H_
6 #define TRACE_TEMPLATED_SUPER_H_
8 #include "heap/stubs.h"
14 class Mixin
: public GarbageCollectedMixin
{
16 virtual void trace(Visitor
*) override
{ }
20 class Super
: public GarbageCollected
<Super
<T
> >, public Mixin
{
21 USING_GARBAGE_COLLECTED_MIXIN(Super
);
23 virtual void trace(Visitor
*) override
;
24 void clearWeakMembers(Visitor
*);
26 Member
<HeapObject
> m_obj
;
27 WeakMember
<HeapObject
> m_weak
;
31 class Sub
: public Super
<T
> {
33 virtual void trace(Visitor
* visitor
) override
;
35 Member
<HeapObject
> m_obj
;
38 class HeapObject
: public Sub
<HeapObject
> {
40 virtual void trace(Visitor
*) override
;
42 Member
<HeapObject
> m_obj
;