diff options
| author | 2022-07-29 08:59:55 +0000 | |
|---|---|---|
| committer | 2022-08-03 04:16:53 +0000 | |
| commit | 1f6b3d5801360588e27770a4f3f916eb2accab67 (patch) | |
| tree | ac8a043ae5731033ed0d233c77b8d73b1ea635fc /libnativeloader/library_namespaces.cpp | |
| parent | 64120bc35efa345d0f8a94bbeea84756d27b8c6b (diff) | |
Don't request a deopt if caller isn't async deoptimizeable
When determining if a deopt is required for instrumentation reasons on a
method exit we missed to check if the caller is async deoptimizaeble. We
don't handle the case where we don't deopt anything. For example, when a
native method is called from a method that isn't async deoptimizaeble
and if we request a deopt, it will be treated as a partial frame deopt
(since there is a non-deoptimizaeble method in the fragment) and we
start the execution in the QuickToInterpreterBridge with a native method
which isn't correct.
Test: art/test.py
Bug: 206029744
Change-Id: Ibd70e6fbbedbb7b721451e07ef7727a0ddf3cf4c
Diffstat (limited to 'libnativeloader/library_namespaces.cpp')
0 files changed, 0 insertions, 0 deletions