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 10namespace blink { 11 12class HeapObject : public GarbageCollected<HeapObject> { 13public: 14 virtual void trace(Visitor*) { } 15}; 16 17// Don't warn about raw pointers to heap allocated objects. 18class A : public GarbageCollected<A>{ 19private: 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. 25class B : public GarbageCollected<B> { 26private: 27 GC_PLUGIN_IGNORE("http://crbug.com/12345") 28 Member<HeapObject> m_one; 29}; 30 31// Don't require tracing an ignored field. 32class C : public GarbageCollected<C> { 33public: 34 void trace(Visitor*); 35private: 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