Commit 5620ebf6 authored by Reid Kleckner's avatar Reid Kleckner Committed by Commit Bot

Blink GC plugin: Fix tests after addition of const qual

TBR=haraken@chromium.org, omerkatz@chromium.org

Bug: 1058608
Change-Id: I03330f4aecf276cf994cb34362e3605b616e3886
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2088637Reviewed-by: default avatarReid Kleckner <rnk@chromium.org>
Commit-Queue: Reid Kleckner <rnk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#747022}
parent 1ba0e279
...@@ -2,7 +2,7 @@ In file included from finalize_after_dispatch.cpp:5: ...@@ -2,7 +2,7 @@ In file included from finalize_after_dispatch.cpp:5:
./finalize_after_dispatch.h:12:1: warning: [blink-gc] Class 'NeedsDispatch' is missing manual trace dispatch. ./finalize_after_dispatch.h:12:1: warning: [blink-gc] Class 'NeedsDispatch' is missing manual trace dispatch.
class NeedsDispatch : public GarbageCollected<NeedsDispatch> { class NeedsDispatch : public GarbageCollected<NeedsDispatch> {
^ ^
finalize_after_dispatch.cpp:30:1: warning: [blink-gc] Missing dispatch to class 'D' in manual finalize dispatch. finalize_after_dispatch.cpp:28:1: warning: [blink-gc] Missing dispatch to class 'D' in manual finalize dispatch.
void A::FinalizeGarbageCollectedObject() void A::FinalizeGarbageCollectedObject()
^ ^
2 warnings generated. 2 warnings generated.
...@@ -6,16 +6,17 @@ ...@@ -6,16 +6,17 @@
namespace blink { namespace blink {
static B* toB(A* a) { return static_cast<B*>(a); } static const B* toB(const A* a) {
return static_cast<const B*>(a);
}
void A::Trace(Visitor* visitor) void A::Trace(Visitor* visitor) const {
{
switch (m_type) { switch (m_type) {
case TB: case TB:
toB(this)->TraceAfterDispatch(visitor); toB(this)->TraceAfterDispatch(visitor);
break; break;
case TC: case TC:
static_cast<C*>(this)->TraceAfterDispatch(visitor); static_cast<const C*>(this)->TraceAfterDispatch(visitor);
break; break;
case TD: case TD:
// Missing static_cast<D*>(this)->TraceAfterDispatch(visitor); // Missing static_cast<D*>(this)->TraceAfterDispatch(visitor);
......
...@@ -10,14 +10,15 @@ ...@@ -10,14 +10,15 @@
namespace blink { namespace blink {
class A : public GarbageCollected<A> { class A : public GarbageCollected<A> {
public: public:
void Trace(Visitor*); void Trace(Visitor*) const;
void TraceAfterDispatch(Visitor*) const; void TraceAfterDispatch(Visitor*) const;
protected: protected:
enum Type { TB, TC, TD }; enum Type { TB, TC, TD };
A(Type type) : m_type(type) { } A(Type type) : m_type(type) {}
private:
private:
Type m_type; Type m_type;
}; };
......
trace_after_dispatch.cpp:11:1: warning: [blink-gc] Missing dispatch to class 'D' in manual trace dispatch. trace_after_dispatch.cpp:13:1: warning: [blink-gc] Missing dispatch to class 'D' in manual trace dispatch.
void A::Trace(Visitor* visitor) void A::Trace(Visitor* visitor) const {
^ ^
trace_after_dispatch.cpp:30:1: warning: [blink-gc] Base class 'A' of derived class 'B' requires tracing. trace_after_dispatch.cpp:29:1: warning: [blink-gc] Base class 'A' of derived class 'B' requires tracing.
void B::TraceAfterDispatch(Visitor* visitor) const void B::TraceAfterDispatch(Visitor* visitor) const {
^ ^
trace_after_dispatch.cpp:38:1: warning: [blink-gc] Class 'C' has untraced fields that require tracing. trace_after_dispatch.cpp:36:1: warning: [blink-gc] Class 'C' has untraced fields that require tracing.
void C::TraceAfterDispatch(Visitor* visitor) const void C::TraceAfterDispatch(Visitor* visitor) const {
^ ^
./trace_after_dispatch.h:36:5: note: [blink-gc] Untraced field 'm_a' declared here: ./trace_after_dispatch.h:40:5: note: [blink-gc] Untraced field 'm_a' declared here:
Member<A> m_a; Member<A> m_a;
^ ^
3 warnings generated. 3 warnings generated.
...@@ -25,7 +25,7 @@ void TraceAfterDispatchExternBase::TraceAfterDispatch(Visitor* visitor) const { ...@@ -25,7 +25,7 @@ void TraceAfterDispatchExternBase::TraceAfterDispatch(Visitor* visitor) const {
Member<X> x_base_; Member<X> x_base_;
^ ^
trace_after_dispatch_impl_error.cpp:38:1: warning: [blink-gc] Base class 'TraceAfterDispatchExternBase' of derived class 'TraceAfterDispatchExternDerived' requires tracing. trace_after_dispatch_impl_error.cpp:38:1: warning: [blink-gc] Base class 'TraceAfterDispatchExternBase' of derived class 'TraceAfterDispatchExternDerived' requires tracing.
void TraceAfterDispatchExternDerived::TraceAfterDispatch(Visitor* visitor) const { void TraceAfterDispatchExternDerived::TraceAfterDispatch(
^ ^
trace_after_dispatch_impl_error.cpp:38:1: warning: [blink-gc] Class 'TraceAfterDispatchExternDerived' has untraced fields that require tracing. trace_after_dispatch_impl_error.cpp:38:1: warning: [blink-gc] Class 'TraceAfterDispatchExternDerived' has untraced fields that require tracing.
./trace_after_dispatch_impl_error.h:70:3: note: [blink-gc] Untraced field 'x_derived_' declared here: ./trace_after_dispatch_impl_error.h:70:3: note: [blink-gc] Untraced field 'x_derived_' declared here:
......
...@@ -2,7 +2,7 @@ In file included from virtual_and_trace_after_dispatch.cpp:5: ...@@ -2,7 +2,7 @@ In file included from virtual_and_trace_after_dispatch.cpp:5:
./virtual_and_trace_after_dispatch.h:12:1: warning: [blink-gc] Left-most base class 'A' of derived class 'B' must be polymorphic. ./virtual_and_trace_after_dispatch.h:12:1: warning: [blink-gc] Left-most base class 'A' of derived class 'B' must be polymorphic.
class A : public GarbageCollected<A> { class A : public GarbageCollected<A> {
^ ^
./virtual_and_trace_after_dispatch.h:23:1: warning: [blink-gc] Class 'B' contains or inherits virtual methods but implements manual dispatching. ./virtual_and_trace_after_dispatch.h:24:1: warning: [blink-gc] Class 'B' contains or inherits virtual methods but implements manual dispatching.
class B : public A { class B : public A {
^ ^
./virtual_and_trace_after_dispatch.h:14:5: note: [blink-gc] Manual dispatch 'Trace' declared here: ./virtual_and_trace_after_dispatch.h:14:5: note: [blink-gc] Manual dispatch 'Trace' declared here:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment