Home | History | Annotate | Download | only in tests
      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 DESTRUCTOR_ACCESS_FINALIZED_FIELD_H_
      6 #define DESTRUCTOR_ACCESS_FINALIZED_FIELD_H_
      7 
      8 #include "heap/stubs.h"
      9 
     10 namespace blink {
     11 
     12 class Other : public RefCounted<Other> {
     13 public:
     14     bool foo() { return true; }
     15 };
     16 
     17 class HeapObject;
     18 
     19 class PartOther {
     20     ALLOW_ONLY_INLINE_ALLOCATION();
     21 public:
     22     void Trace(Visitor*);
     23 
     24     HeapObject* obj() { return m_obj; }
     25 
     26 private:
     27     Member<HeapObject> m_obj;
     28 };
     29 
     30 class HeapObject : public GarbageCollectedFinalized<HeapObject> {
     31 public:
     32     ~HeapObject();
     33     void Trace(Visitor*);
     34     bool foo() { return true; }
     35     void bar(HeapObject*) { }
     36 private:
     37     RefPtr<Other> m_ref;
     38     Member<HeapObject> m_obj;
     39     Vector<Member<HeapObject> > m_objs;
     40     PartOther m_part;
     41 };
     42 
     43 }
     44 
     45 #endif
     46