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
7namespace blink {
8
9HeapObject::~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
23void HeapObject::trace(Visitor* visitor)
24{
25    visitor->trace(m_obj);
26    visitor->trace(m_objs);
27    visitor->trace(m_part);
28}
29
30void PartOther::trace(Visitor* visitor)
31{
32    visitor->trace(m_obj);
33}
34
35}
36