Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / clang / blink_gc_plugin / tests / weak_fields_require_tracing.cpp
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 #include "weak_fields_require_tracing.h"
6
7 namespace blink {
8
9 void HeapObject::trace(Visitor* visitor)
10 {
11     // Missing visitor->trace(m_obj1);
12     // Missing visitor->trace(m_obj2);
13     // visitor->trace(m_obj3) in callback.
14     // Missing visitor->trace(m_set1);
15     visitor->trace(m_set2);
16     visitor->registerWeakMembers<HeapObject,
17                                  &HeapObject::clearWeakMembers>(this);
18 }
19
20 void HeapObject::clearWeakMembers(Visitor* visitor)
21 {
22     visitor->trace(m_obj1);  // Does not count.
23     // Missing visitor->trace(m_obj2);
24     visitor->trace(m_obj3);  // OK.
25     visitor->trace(m_set1);  // Does not count.
26 }
27
28 }