• 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 IGNORE_FIELDS_H_
6 #define IGNORE_FIELDS_H_
7 
8 #include "heap/stubs.h"
9 
10 namespace blink {
11 
12 class HeapObject : public GarbageCollected<HeapObject> {
13 public:
Trace(Visitor *)14     virtual void Trace(Visitor*) { }
15 };
16 
17 // Don't warn about raw pointers to heap allocated objects.
18 class A : public GarbageCollected<A>{
19 private:
20     GC_PLUGIN_IGNORE("http://crbug.com/12345")
21     HeapObject* m_obj;
22 };
23 
24 // Don't require Trace method when (all) GC fields are ignored.
25 class B : public GarbageCollected<B> {
26 private:
27     GC_PLUGIN_IGNORE("http://crbug.com/12345")
28     Member<HeapObject> m_one;
29 };
30 
31 // Don't require tracing an ignored field.
32 class C : public GarbageCollected<C> {
33 public:
34     void Trace(Visitor*);
35 private:
36     Member<HeapObject> m_one;
37     GC_PLUGIN_IGNORE("http://crbug.com/12345")
38     Member<HeapObject> m_two;
39 };
40 
41 }
42 
43 #endif
44