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 "destructor_access_finalized_field.h" 6 7 namespace blink { 8 9 HeapObject::~HeapObject() 10 { 11 // Valid access to fields. 12 if (m_ref->foo() && !m_obj) { 13 m_objs.size(); 14 m_part.obj(); 15 } 16 17 // Invalid access to fields. 18 bar(m_obj); 19 m_obj->foo(); 20 m_objs[0]; 21 } 22 23 void HeapObject::trace(Visitor* visitor) 24 { 25 visitor->trace(m_obj); 26 visitor->trace(m_objs); 27 visitor->trace(m_part); 28 } 29 30 void PartOther::trace(Visitor* visitor) 31 { 32 visitor->trace(m_obj); 33 } 34 35 } 36