1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "weak_fields_require_tracing.h" 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace blink { 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void HeapObject::trace(Visitor* visitor) 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){ 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Missing visitor->trace(m_obj1); 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Missing visitor->trace(m_obj2); 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // visitor->trace(m_obj3) in callback. 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Missing visitor->trace(m_set1); 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) visitor->trace(m_set2); 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) visitor->registerWeakMembers<HeapObject, 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) &HeapObject::clearWeakMembers>(this); 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void HeapObject::clearWeakMembers(Visitor* visitor) 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){ 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) visitor->trace(m_obj1); // Does not count. 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Missing visitor->trace(m_obj2); 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) visitor->trace(m_obj3); // OK. 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) visitor->trace(m_set1); // Does not count. 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 29