diff options
author | yutak <yutak@chromium.org> | 2015-03-02 01:59:17 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-02 10:00:02 +0000 |
commit | 8747aee1f18410d8eaf0e2d98724c8e24477bdc2 (patch) | |
tree | a858e70b5300916f24b32246877bd537f455290e /components/components.gyp | |
parent | a34a2ff461d6bbe53e79fbf3fce83a0c88041481 (diff) | |
download | chromium_src-8747aee1f18410d8eaf0e2d98724c8e24477bdc2.zip chromium_src-8747aee1f18410d8eaf0e2d98724c8e24477bdc2.tar.gz chromium_src-8747aee1f18410d8eaf0e2d98724c8e24477bdc2.tar.bz2 |
BlinkGCPlugin: Fix detection of trace dispatching after inlined tracing.
This patch actually fixes three different issues, as I could not separate the
updated tests in a meaningful way.
1. CheckDispatchVisitor needs to look for UnresolvedMemberExpr*, since inlined
tracing introduces unresolved member references.
This visitor looks at every function call within a trace dispatching method,
and returns whether there is a call delegating to the class in question. We
need to take care of UnresolvedMemberExpr* cases in addition to MemberExpr*.
2. RecordInfo::DetermineTracingMethods() should return traceImpl() instead of
trace() as trace_dispatch_method_.
The plugin inspects the definition of trace_dispatch_method_ in order to detect
missing or inappropriate delegation to subclasses. Therefore, the method should
be something that has actual delegation calls in its body (i.e. traceImpl())
instead of a trampoline stub (i.e. trace()).
3. A silly typo in Config::GetTraceMethodType(). Really silly. Not sure why
I did this way.
This patch comes with updated tests for traceAfterDispatchImpl(). Now the tests
are more closer to real cases, using traceImpl to implement trace dispatching.
BUG=462511
R=kouhei@chromium.org
CC=zerny@chromium.org, oilpan-reviews@chromium.org
Review URL: https://codereview.chromium.org/968143002
Cr-Commit-Position: refs/heads/master@{#318673}
Diffstat (limited to 'components/components.gyp')
0 files changed, 0 insertions, 0 deletions