OLD | NEW |
---|---|
(Empty) | |
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 "finalize_after_dispatch.h" | |
6 | |
7 namespace WebCore { | |
8 | |
9 static B* toB(A* a) { return static_cast<B*>(a); } | |
10 | |
11 void A::trace(Visitor* visitor) | |
12 { | |
13 switch (m_type) { | |
14 case TB: toB(this)->traceAfterDispatch(visitor); | |
Mads Ager (chromium)
2014/03/18 09:19:32
I think you want some breaks here so that you do n
zerny-chromium
2014/03/18 10:03:41
Yes. I should avoid writing bad/invalid code in te
| |
15 case TC: static_cast<C*>(this)->traceAfterDispatch(visitor); | |
16 case TD: static_cast<D*>(this)->traceAfterDispatch(visitor); | |
17 } | |
18 } | |
19 | |
20 void A::traceAfterDispatch(Visitor* visitor) | |
21 { | |
22 } | |
23 | |
24 void A::finalize() | |
25 { | |
26 switch (m_type) { | |
27 case TB: toB(this)->~B(); | |
Mads Ager (chromium)
2014/03/18 09:19:32
break!
zerny-chromium
2014/03/18 10:03:41
Done.
| |
28 case TC: static_cast<C*>(this)->~C(); | |
29 case TD: ; // Missing static_cast<D*>(this)->~D(); | |
30 } | |
31 } | |
32 | |
33 void B::traceAfterDispatch(Visitor* visitor) | |
34 { | |
35 visitor->trace(m_a); | |
36 A::trace(visitor); | |
37 } | |
38 | |
39 void C::traceAfterDispatch(Visitor* visitor) | |
40 { | |
41 visitor->trace(m_a); | |
42 A::trace(visitor); | |
43 } | |
44 | |
45 void D::traceAfterDispatch(Visitor* visitor) | |
46 { | |
47 visitor->trace(m_a); | |
48 Abstract::trace(visitor); | |
49 } | |
50 | |
51 } | |
OLD | NEW |