[vmkit-commits] [vmkit] r180549 - Corrected JNI return handling in OpenJDK implementation

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:23:51 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:22:21 2013
New Revision: 180549

URL: http://llvm.org/viewvc/llvm-project?rev=180549&view=rev
Log:
Corrected JNI return handling in OpenJDK implementation
(cherry picked from commit b4e5786340427a637b5801dc8ded76487f05dbae)

Modified:
    vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc

Modified: vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc?rev=180549&r1=180548&r2=180549&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc Thu Apr 25 12:22:21 2013
@@ -129,9 +129,10 @@ JVM_MonitorWait(JNIEnv *env, jobject obj
   BEGIN_JNI_EXCEPTION
 
   JavaObject::wait(*(JavaObject**)obj, ms, 0);
-  RETURN_VOID_FROM_JNI
 
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT void JNICALL
@@ -140,9 +141,9 @@ JVM_MonitorNotify(JNIEnv *env, jobject o
 
   JavaObject::notify(*(JavaObject**)obj);
 
-  RETURN_VOID_FROM_JNI
-
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT void JNICALL
@@ -150,9 +151,10 @@ JVM_MonitorNotifyAll(JNIEnv *env, jobjec
   BEGIN_JNI_EXCEPTION
 
   JavaObject::notifyAll(*(JavaObject**)obj);
-  RETURN_VOID_FROM_JNI
 
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT jobject JNICALL
@@ -169,7 +171,7 @@ JVM_Clone(JNIEnv *env, jobject obj) {
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -195,7 +197,7 @@ JVM_InternString(JNIEnv *env, jstring _s
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -242,8 +244,9 @@ JVM_ArrayCopy(JNIEnv *env, jclass ignore
 
   ArrayCopy(src, sstart, dst, dstart, len);
 
-  RETURN_VOID_FROM_JNI
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT jobject JNICALL
@@ -274,7 +277,7 @@ JVM_InitProperties(JNIEnv *env, jobject
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -302,8 +305,8 @@ JNIEXPORT void JNICALL
 JVM_GC(void) {
   BEGIN_JNI_EXCEPTION
   vmkit::Collector::collect();
-  RETURN_VOID_FROM_JNI;
   END_JNI_EXCEPTION
+  RETURN_VOID_FROM_JNI;
 }
 
 /* Returns the number of real-time milliseconds that have elapsed since the
@@ -364,7 +367,7 @@ JVM_LoadLibrary(const char *name) {
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT void JNICALL
@@ -380,7 +383,7 @@ JVM_FindLibraryEntry(void *handle, const
   RETURN_FROM_JNI(res);
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jboolean JNICALL
@@ -412,9 +415,9 @@ JVM_FillInStackTrace(JNIEnv *env, jobjec
   T = *(JavaObjectThrowable**)throwable;
   JavaObjectThrowable::fillInStackTrace(T);
 
-  RETURN_VOID_FROM_JNI;
-
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI;
 }
 
 JNIEXPORT void JNICALL
@@ -438,7 +441,7 @@ JVM_GetStackTraceDepth(JNIEnv *env, jobj
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobject JNICALL
@@ -477,7 +480,7 @@ JVM_GetStackTraceElement(JNIEnv *env, jo
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -634,9 +637,9 @@ JVM_StartThread(JNIEnv *env, jobject _th
 
   newTh->initialise(thread, sleepObject);
 
-  RETURN_VOID_FROM_JNI
-
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT void JNICALL
@@ -658,7 +661,7 @@ JVM_IsThreadAlive(JNIEnv *env, jobject _
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT void JNICALL
@@ -683,8 +686,9 @@ JVM_SetThreadPriority(JNIEnv *env, jobje
 
   vm->upcalls->priority->setInstanceInt32Field(T, prio);
 
-  RETURN_VOID_FROM_JNI
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT void JNICALL
@@ -749,8 +753,9 @@ JVM_Sleep(JNIEnv *env, jclass threadClas
   }
   JavaObject::release(th->sleepObject);
 
-  RETURN_VOID_FROM_JNI
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT jobject JNICALL
@@ -758,9 +763,10 @@ JVM_CurrentThread(JNIEnv *env, jclass th
   BEGIN_JNI_EXCEPTION
   JavaThread* th = JavaThread::get();
   RETURN_REF_FROM_JNI(th->currentThread(), jobject);
+  
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jint JNICALL
@@ -815,8 +821,9 @@ JVM_Interrupt(JNIEnv *env, jobject _thre
 
   // Here we could also raise a signal for interrupting I/O
 
-  RETURN_VOID_FROM_JNI
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT jboolean JNICALL
@@ -842,7 +849,7 @@ JVM_IsInterrupted(JNIEnv *env, jobject _
 
   END_JNI_EXCEPTION
 
-  return false;
+  RETURN_FROM_JNI(JNI_FALSE);
 }
 
 JNIEXPORT jboolean JNICALL
@@ -851,7 +858,7 @@ JVM_HoldsLock(JNIEnv *env, jclass thread
   jboolean res = JavaObject::owner(*(JavaObject**)obj);
   RETURN_FROM_JNI(res);
   END_JNI_EXCEPTION
-  return false;
+  RETURN_FROM_JNI(JNI_FALSE);
 }
 
 JNIEXPORT void JNICALL
@@ -892,9 +899,10 @@ JVM_GetClassContext(JNIEnv *env) {
   res = GetClassContext(1);
 
   RETURN_REF_FROM_JNI(res, jobjectArray);
+  
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jint JNICALL
@@ -931,7 +939,7 @@ JVM_GetSystemPackages(JNIEnv *env) {
 
   END_JNI_EXCEPTION
 
-  return NULL;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -960,9 +968,10 @@ JVM_LatestUserDefinedLoader(JNIEnv *env)
   res = th->getNonNullClassLoader();
 
   RETURN_REF_FROM_JNI(res, jobject);
+  
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -990,7 +999,7 @@ JVM_GetArrayLength(JNIEnv *env, jobject
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobject JNICALL
@@ -1008,7 +1017,7 @@ JVM_GetArrayElement(JNIEnv *env, jobject
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jvalue JNICALL
@@ -1046,8 +1055,9 @@ JVM_SetArrayElement(JNIEnv *env, jobject
 
   ArrayObject::setElement(array, element, index);
 
-  RETURN_VOID_FROM_JNI
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 JNIEXPORT void JNICALL
@@ -1106,7 +1116,7 @@ JVM_NewArray(JNIEnv *env, jclass eltClas
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 extern JavaObject* multiCallNewIntern(UserClassArray* cl, uint32 len,
@@ -1193,7 +1203,7 @@ JVM_NewMultiArray(JNIEnv *env, jclass el
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1232,7 +1242,7 @@ JVM_GetCallerClass(JNIEnv *env, int n) {
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1283,7 +1293,7 @@ JVM_FindPrimitiveClass(JNIEnv *env, cons
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1302,8 +1312,9 @@ JVM_ResolveClass(JNIEnv *env, jclass cls
 
   C->asClass()->resolveClass();
 
-  RETURN_VOID_FROM_JNI
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI
 }
 
 /*
@@ -1340,7 +1351,7 @@ JVM_FindClassFromClassLoader(JNIEnv *env
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jclass JNICALL
@@ -1360,7 +1371,7 @@ JVM_FindClassFromBootLoader(JNIEnv *env,
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1397,7 +1408,7 @@ JVM_FindLoadedClass(JNIEnv *env, jobject
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /* Define a class */
@@ -1425,7 +1436,7 @@ JVM_DefineClass(JNIEnv *env, const char
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /* Define a class with a source (added in JDK1.5) */
@@ -1474,7 +1485,7 @@ JVM_GetClassName(JNIEnv *env, jclass cls
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobjectArray JNICALL
@@ -1493,7 +1504,7 @@ JVM_GetClassInterfaces(JNIEnv *env, jcla
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobject JNICALL
@@ -1511,7 +1522,7 @@ JVM_GetClassLoader(JNIEnv *env, jclass c
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jboolean JNICALL
@@ -1533,7 +1544,7 @@ JVM_IsInterface(JNIEnv *env, jclass cls)
 
   END_JNI_EXCEPTION
 
-  return JNI_FALSE;
+  RETURN_FROM_JNI(JNI_FALSE);
 }
 
 JNIEXPORT jobjectArray JNICALL
@@ -1563,7 +1574,7 @@ JVM_GetProtectionDomain(JNIEnv *env, jcl
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT void JNICALL
@@ -1587,7 +1598,7 @@ JVM_IsArrayClass(JNIEnv *env, jclass cls
 
   END_JNI_EXCEPTION
 
-  return JNI_FALSE;
+  RETURN_FROM_JNI(JNI_FALSE);
 }
 
 JNIEXPORT jboolean JNICALL
@@ -1606,7 +1617,7 @@ JVM_IsPrimitiveClass(JNIEnv *env, jclass
 
   END_JNI_EXCEPTION
 
-  return JNI_FALSE;
+  RETURN_FROM_JNI(JNI_FALSE);
 }
 
 JNIEXPORT jclass JNICALL
@@ -1632,7 +1643,7 @@ JVM_GetComponentType(JNIEnv *env, jclass
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jint JNICALL
@@ -1648,7 +1659,7 @@ JVM_GetClassModifiers(JNIEnv *env, jclas
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobjectArray JNICALL
@@ -1668,7 +1679,7 @@ JVM_GetDeclaredClasses(JNIEnv *env, jcla
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jclass JNICALL
@@ -1684,7 +1695,7 @@ JVM_GetDeclaringClass(JNIEnv *env, jclas
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /* Generics support (JDK 1.5) */
@@ -1706,7 +1717,7 @@ JVM_GetClassSignature(JNIEnv *env, jclas
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /* Annotations support (JDK 1.5) */
@@ -1730,7 +1741,7 @@ JVM_GetClassAnnotations(JNIEnv *env, jcl
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1753,7 +1764,7 @@ JVM_GetClassDeclaredMethods(JNIEnv *env,
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobjectArray JNICALL
@@ -1772,7 +1783,7 @@ JVM_GetClassDeclaredFields(JNIEnv *env,
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobjectArray JNICALL
@@ -1791,7 +1802,7 @@ JVM_GetClassDeclaredConstructors(JNIEnv
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /* Differs from JVM_GetClassModifiers in treatment of inner classes.
@@ -1819,7 +1830,7 @@ JVM_GetClassAccessFlags(JNIEnv *env, jcl
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /* The following two reflection routines are still needed due to startup time issues */
@@ -1847,7 +1858,7 @@ JVM_InvokeMethod(JNIEnv *env, jobject _m
   RETURN_REF_FROM_JNI(ret, jobject);
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1873,7 +1884,7 @@ JVM_NewInstanceFromConstructor(JNIEnv *e
   RETURN_REF_FROM_JNI(ret, jobject);
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -1903,7 +1914,7 @@ JVM_GetClassConstantPool(JNIEnv *env, jc
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jint JNICALL JVM_ConstantPoolGetSize
@@ -1964,7 +1975,7 @@ JNIEXPORT jint JNICALL JVM_ConstantPoolG
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jlong JNICALL JVM_ConstantPoolGetLongAt
@@ -2009,7 +2020,7 @@ JNIEXPORT jstring JNICALL JVM_ConstantPo
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -2047,7 +2058,7 @@ JVM_DoPrivileged(JNIEnv *env, jclass cls
 
   END_JNI_EXCEPTION
 
-  return NULL;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT jobject JNICALL
@@ -2107,7 +2118,7 @@ JVM_FindSignal(const char *name) {
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -2150,7 +2161,7 @@ JVM_AssertionStatusDirectives(JNIEnv *en
   RETURN_REF_FROM_JNI(asdObj, jobject);
   END_JNI_EXCEPTION
 
-  return NULL;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -2511,7 +2522,7 @@ JVM_GetLastErrorString(char *buf, int le
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -2556,7 +2567,7 @@ JVM_Open(const char *fname, jint flags,
   RETURN_FROM_JNI(result);
   END_JNI_EXCEPTION
 
-  return -1;
+  RETURN_FROM_JNI(-1);
 }
 
 /*
@@ -2570,9 +2581,10 @@ JVM_Close(jint fd) {
   BEGIN_JNI_EXCEPTION
   jint res = close(fd);
   RETURN_FROM_JNI(res);
+  
   END_JNI_EXCEPTION
 
-  return -1;
+  RETURN_FROM_JNI(-1);
 }
 
 /*
@@ -2600,7 +2612,7 @@ JVM_Read(jint fd, char *buf, jint nbytes
   //}
   RETURN_FROM_JNI(res);
   END_JNI_EXCEPTION
-  return -1;
+  RETURN_FROM_JNI(-1);
 }
 
 /*
@@ -2618,7 +2630,7 @@ JVM_Write(jint fd, char *buf, jint nbyte
   jint res = write(fd, buf, nbytes);
   RETURN_FROM_JNI(res);
   END_JNI_EXCEPTION
-  return -1;
+  RETURN_FROM_JNI(-1);
 }
 
 /*
@@ -2664,7 +2676,7 @@ JVM_Available(jint fd, jlong *pbytes) {
     }
   }
   END_JNI_EXCEPTION
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -2682,7 +2694,7 @@ JVM_Lseek(jint fd, jlong offset, jint wh
   jlong res = lseek64(fd, offset, whence);
   RETURN_FROM_JNI(res);
   END_JNI_EXCEPTION
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -2771,7 +2783,7 @@ JVM_Accept(jint fd, struct sockaddr *him
   	th->leaveUncooperativeCode();
 	RETURN_FROM_JNI(res);
 	END_JNI_EXCEPTION
-	return -1;
+	RETURN_FROM_JNI(-1);
 }
 
 JNIEXPORT jint JNICALL
@@ -2784,7 +2796,7 @@ JVM_RecvFrom(jint fd, char *buf, int nBy
   	th->leaveUncooperativeCode();
 	RETURN_FROM_JNI(res);
 	END_JNI_EXCEPTION
-	return -1;
+	RETURN_FROM_JNI(-1);
 }
 
 JNIEXPORT jint JNICALL
@@ -2802,6 +2814,7 @@ JVM_SocketAvailable(jint fd, jint *resul
     RETURN_FROM_JNI(JNI_FALSE);
 
   RETURN_FROM_JNI(JNI_TRUE);
+  
   END_JNI_EXCEPTION
 
   RETURN_FROM_JNI(JNI_FALSE);
@@ -2875,9 +2888,10 @@ JVM_RawMonitorCreate(void) {
   pthread_mutex_init(L, NULL);
 
   RETURN_FROM_JNI(L);
+  
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT void JNICALL
@@ -2886,8 +2900,10 @@ JVM_RawMonitorDestroy(void *mon) {
   pthread_mutex_t* L = (pthread_mutex_t*)mon;
   pthread_mutex_destroy(L);
   free(L);
-  RETURN_VOID_FROM_JNI;
+
   END_JNI_EXCEPTION
+
+  RETURN_VOID_FROM_JNI;
 }
 
 JNIEXPORT jint JNICALL
@@ -2897,7 +2913,7 @@ JVM_RawMonitorEnter(void *mon) {
   jint res = pthread_mutex_lock(L);
   RETURN_FROM_JNI(res);
   END_JNI_EXCEPTION
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT void JNICALL
@@ -2905,8 +2921,8 @@ JVM_RawMonitorExit(void *mon) {
   BEGIN_JNI_EXCEPTION
   pthread_mutex_t* L = (pthread_mutex_t*)mon;
   pthread_mutex_unlock(L);
-  RETURN_VOID_FROM_JNI;
   END_JNI_EXCEPTION
+  RETURN_VOID_FROM_JNI;
 }
 
 /*
@@ -2988,7 +3004,7 @@ JVM_GetEnclosingMethodInfo(JNIEnv* env,
 
   END_JNI_EXCEPTION
 
-  return 0;
+  RETURN_FROM_JNI(0);
 }
 
 /*
@@ -3048,7 +3064,7 @@ JVM_GetThreadStateValues(JNIEnv* env, ji
 	}
 	RETURN_REF_FROM_JNI(res, jintArray);
 	END_JNI_EXCEPTION
-	return NULL;
+	RETURN_FROM_JNI(0);
 }
 
 /*
@@ -3139,7 +3155,7 @@ JnjvmClassLoader* loader;
 	//th->leaveUncooperativeCode();
 	RETURN_REF_FROM_JNI(res, jobjectArray);
 	END_JNI_EXCEPTION
-	return NULL;
+	RETURN_FROM_JNI(0);
 }
 
 JNIEXPORT void JNICALL





More information about the vmkit-commits mailing list