Clean up JniMethodStart().
After we have clarified that @FastNative methods cannot be
synchronized and starting enforcing it in
https://android-review.googlesource.com/1518545
we can clean up JniMethodStart() and remove the check for
@FastNative (though we keep a CHECK in debug builds).
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 172332525
Change-Id: I1466dbca3b22524b8cc72db79bf583d64d32c7bf
diff --git a/runtime/entrypoints/quick/quick_jni_entrypoints.cc b/runtime/entrypoints/quick/quick_jni_entrypoints.cc
index bda36d8..d78185e 100644
--- a/runtime/entrypoints/quick/quick_jni_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_jni_entrypoints.cc
@@ -68,14 +68,14 @@
DCHECK(env != nullptr);
uint32_t saved_local_ref_cookie = bit_cast<uint32_t>(env->GetLocalRefCookie());
env->SetLocalRefCookie(env->GetLocalsSegmentState());
- ArtMethod* native_method = *self->GetManagedStack()->GetTopQuickFrame();
- // TODO: Introduce special entrypoint for synchronized @FastNative methods?
- // Or ban synchronized @FastNative outright to avoid the extra check here?
- DCHECK(!native_method->IsFastNative() || native_method->IsSynchronized());
- if (!native_method->IsFastNative()) {
- // When not fast JNI we transition out of runnable.
- self->TransitionFromRunnableToSuspended(kNative);
+
+ if (kIsDebugBuild) {
+ ArtMethod* native_method = *self->GetManagedStack()->GetTopQuickFrame();
+ CHECK(!native_method->IsFastNative()) << native_method->PrettyMethod();
}
+
+ // Transition out of runnable.
+ self->TransitionFromRunnableToSuspended(kNative);
return saved_local_ref_cookie;
}