Don't use work_around_app_jni_bugs for llvm now.
Change-Id: Id698e60c09dc863311445498d8813e38a48b8cc4
diff --git a/src/native/dalvik_system_VMRuntime.cc b/src/native/dalvik_system_VMRuntime.cc
index 140faff..fe52ae4 100644
--- a/src/native/dalvik_system_VMRuntime.cc
+++ b/src/native/dalvik_system_VMRuntime.cc
@@ -136,6 +136,7 @@
Runtime* runtime = Runtime::Current();
JavaVMExt* vm = runtime->GetJavaVM();
+#if !defined(ART_USE_LLVM_COMPILER)
if (vm->check_jni) {
LOG(WARNING) << "Turning off CheckJNI so we can turn on JNI app bug workarounds...";
ScopedThreadListLock thread_list_lock;
@@ -145,7 +146,12 @@
LOG(INFO) << "Turning on JNI app bug workarounds for target SDK version "
<< targetSdkVersion << "...";
+
vm->work_around_app_jni_bugs = true;
+#else
+ LOG(WARNING) << "LLVM does not work-around app jni bugs.";
+ vm->work_around_app_jni_bugs = false;
+#endif
}
}
diff --git a/src/object.cc b/src/object.cc
index 158f0e6..8c101ba 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -591,6 +591,10 @@
DCHECK(Thread::Current() == self);
CHECK(IsNative()) << PrettyMethod(this);
CHECK(native_method != NULL) << PrettyMethod(this);
+#if defined(ART_USE_LLVM_COMPILER)
+ SetFieldPtr<const void*>(OFFSET_OF_OBJECT_MEMBER(Method, native_method_),
+ native_method, false);
+#else
if (!self->GetJniEnv()->vm->work_around_app_jni_bugs) {
SetFieldPtr<const void*>(OFFSET_OF_OBJECT_MEMBER(Method, native_method_),
native_method, false);
@@ -608,6 +612,7 @@
SetFieldPtr<const uint8_t*>(OFFSET_OF_OBJECT_MEMBER(Method, gc_map_),
reinterpret_cast<const uint8_t*>(native_method), false);
}
+#endif
}
void Method::UnregisterNative(Thread* self) {