• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
foo()14     bool foo() { return true; }
15 };
16 
17 class HeapObject;
18 
19 class PartOther {
20     DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
21 public:
22     void Trace(Visitor*);
23 
obj()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*);
foo()34     bool foo() { return true; }
bar(HeapObject *)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