Roll src/third_party/WebKit d10c917:a1123a1 (svn 198729:198730)
[chromium-blink-merge.git] / tools / clang / blink_gc_plugin / tests / destructor_access_finalized_field.h
blob4c721568aa6a0f34d7f3ca6c12d9cd9a5bbbc50a
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.
5 #ifndef DESTRUCTOR_ACCESS_FINALIZED_FIELD_H_
6 #define DESTRUCTOR_ACCESS_FINALIZED_FIELD_H_
8 #include "heap/stubs.h"
10 namespace blink {
12 class Other : public RefCounted<Other> {
13 public:
14 bool foo() { return true; }
17 class HeapObject;
19 class PartOther {
20 ALLOW_ONLY_INLINE_ALLOCATION();
21 public:
22 void trace(Visitor*);
24 HeapObject* obj() { return m_obj; }
26 private:
27 Member<HeapObject> m_obj;
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;
45 #endif