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