OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef GARBAGE_COLLECTED_MIXIN_H_ | 5 #ifndef CLASS_MULTIPLE_TRACE_BASES_H_ |
6 #define GARBAGE_COLLECTED_MIXIN_H_ | 6 #define CLASS_MULTIPLE_TRACE_BASES_H_ |
7 | 7 |
8 #include "heap/stubs.h" | 8 #include "heap/stubs.h" |
9 | 9 |
10 namespace WebCore { | 10 namespace WebCore { |
11 | 11 |
| 12 class Base : public GarbageCollected<Base> { |
| 13 public: |
| 14 virtual void trace(Visitor*); |
| 15 }; |
| 16 |
12 class Mixin : public GarbageCollectedMixin { | 17 class Mixin : public GarbageCollectedMixin { |
13 public: | 18 public: |
14 void trace(Visitor*); | 19 void trace(Visitor*); |
15 private: | |
16 Member<Mixin> m_self; | |
17 }; | 20 }; |
18 | 21 |
19 class HeapObject : public GarbageCollected<HeapObject>, public Mixin { | 22 class Derived : public Base, public Mixin { |
20 USING_GARBAGE_COLLECTED_MIXIN(HeapObject); | 23 USING_GARBAGE_COLLECTED_MIXIN(HeapObject); |
21 public: | 24 // Requires trace method. |
22 void trace(Visitor*); | |
23 private: | |
24 Member<Mixin> m_mix; | |
25 }; | 25 }; |
26 | 26 |
27 } | 27 } |
28 | 28 |
29 #endif | 29 #endif |
OLD | NEW |