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. 4 5 #ifndef CLASS_REQUIRES_FINALIZATION_BASE_H_ 6 #define CLASS_REQUIRES_FINALIZATION_BASE_H_ 7 8 #include "heap/stubs.h" 9 10 namespace blink { 11 12 class A : public GarbageCollected<A> { 13 public: 14 virtual void trace(Visitor*) {} 15 }; 16 17 class B { 18 public: 19 ~B() { /* user-declared, thus, non-trivial */ } 20 }; 21 22 // Second base class needs finalization. 23 class NeedsFinalizer : public A, public B { 24 public: 25 void trace(Visitor*); 26 }; 27 28 // Base does not need finalization. 29 class DoesNotNeedFinalizer : public A { 30 public: 31 void trace(Visitor*); 32 }; 33 34 } 35 36 #endif 37