Home | History | Annotate | Download | only in legacy_naming
      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