Home | History | Annotate | Download | only in tests
      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:
     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