You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2008/06/10 10:56:58 UTC
svn commit: r666018 - /harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni.cpp
Author: varlax
Date: Tue Jun 10 01:56:57 2008
New Revision: 666018
URL: http://svn.apache.org/viewvc?rev=666018&view=rev
Log:
Avoid data race at static initializers
Modified:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni.cpp?rev=666018&r1=666017&r2=666018&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jni/jni.cpp Tue Jun 10 01:56:57 2008
@@ -1448,12 +1448,14 @@
if (clss == vm_env->java_lang_reflect_Constructor_Class)
{
- static jmethodID m = (jmethodID)class_lookup_method(clss, "getId", "()J");
+ static jmethodID m;
+ if (!m) m = (jmethodID)class_lookup_method(clss, "getId", "()J");
return (jmethodID) ((POINTER_SIZE_INT) CallLongMethodA(jni_env, method, m, 0));
}
else if (clss == vm_env->java_lang_reflect_Method_Class)
{
- static jmethodID m = (jmethodID)class_lookup_method(clss, "getId", "()J");
+ static jmethodID m;
+ if (!m) m = (jmethodID)class_lookup_method(clss, "getId", "()J");
return (jmethodID) ((POINTER_SIZE_INT) CallLongMethodA(jni_env, method, m, 0));
}
return NULL;
@@ -1468,7 +1470,8 @@
if (clss == vm_env->java_lang_reflect_Field_Class)
{
- static jmethodID m = (jmethodID)class_lookup_method(clss, "getId", "()J");
+ static jmethodID m;
+ if (!m) m = (jmethodID)class_lookup_method(clss, "getId", "()J");
return (jfieldID) ((POINTER_SIZE_INT) CallLongMethodA(jni_env, field, m, 0));
}
return NULL;