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