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
2 files changed