Check for pop frames independent of method entry listeners am: 62f894502e

Original change: https://android-review.googlesource.com/c/platform/art/+/2102570

Change-Id: Iede1eb0d8413067bea533e5d93ec081e961ae51d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index ad674a7..ffe1dc0 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -273,7 +273,7 @@
     ArtMethod *method = shadow_frame.GetMethod();
 
     // If we can continue in JIT and have JITed code available execute JITed code.
-    if (!stay_in_interpreter && !self->IsForceInterpreter()) {
+    if (!stay_in_interpreter && !self->IsForceInterpreter() && !shadow_frame.GetForcePopFrame()) {
       jit::Jit* jit = Runtime::Current()->GetJit();
       if (jit != nullptr) {
         jit->MethodEntered(self, shadow_frame.GetMethod());
@@ -296,7 +296,7 @@
     }
 
     instrumentation::Instrumentation* instrumentation = Runtime::Current()->GetInstrumentation();
-    if (UNLIKELY(instrumentation->HasMethodEntryListeners())) {
+    if (UNLIKELY(instrumentation->HasMethodEntryListeners() || shadow_frame.GetForcePopFrame())) {
       instrumentation->MethodEnterEvent(self, method);
       if (UNLIKELY(shadow_frame.GetForcePopFrame())) {
         // The caller will retry this invoke or ignore the result. Just return immediately without