summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorDavid Brazdil <dbrazdil@google.com>2018-05-02 16:53:06 +0100
committerDavid Brazdil <dbrazdil@google.com>2018-05-08 10:32:55 +0100
commit1f9d3c3a11cd106246d814ac02b6dafd881f40ad (patch)
tree13e8e39c02df0b610e505901ed6731ee49334ed9 /compiler/optimizing/graph_visualizer.cc
parentbb0454a067389a7a1370d2150bf59efd5aac20a1 (diff)
Fix hiddenapi::MemberSignature for proxies
Proxy classes are classes generated at runtime which implement a given interface. Because they do not inherit the associated dex file form the interface(s), names/signatures of methods cannot be requested directly, but rather through the original interface method. Calling getName() on a proxy mirror::Class also triggers a DCHECK. This patch will refer to the interface method when printing the signature instead of the proxy method. This fixes the warning printed for the proxy method, printing even the class name of the interface instead of the name of the proxy class. This is meant to provide useful info to the devloper. Proxies do not define fields except for the synthetic 'interfaces' and 'throws' fields. Their signatures remain unchanged. This patch also continues to check the access flags of the proxy method for performance reasons. De-proxying the method would introduce two new memory accesses into the fast path. That means deduplication of warnings remains independent between the original and proxy methods. Bug: 78327881 Test: make test-art-host-gtest-hidden_api_test Merged-In: I8f334e5e2b62ca38691c94524edaf198eb73574b Change-Id: I8f334e5e2b62ca38691c94524edaf198eb73574b (cherry picked from commit 73a64f6a2a475c2fe018c7ab1151e3f44d316533)
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions