[vmkit-commits] [vmkit] r72763 - /vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Jun 3 03:28:24 PDT 2009
Author: geoffray
Date: Wed Jun 3 05:28:16 2009
New Revision: 72763
URL: http://llvm.org/viewvc/llvm-project?rev=72763&view=rev
Log:
Bugfix for MonitorExit and MonitorEnter.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp?rev=72763&r1=72762&r2=72763&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp Wed Jun 3 05:28:16 2009
@@ -2493,11 +2493,16 @@
BEGIN_JNI_EXCEPTION
- ((JavaObject*)obj)->acquire();
- return 1;
+ if (obj) {
+ ((JavaObject*)obj)->acquire();
+ return 0;
+ } else {
+ return -1;
+ }
+
END_JNI_EXCEPTION
- return 0;
+ return -1;
}
@@ -2505,11 +2510,22 @@
BEGIN_JNI_EXCEPTION
- ((JavaObject*)obj)->release();
- return 1;
+ JavaObject* Obj = (JavaObject*)obj;
+
+ if (Obj) {
+
+ if (!Obj->owner()) {
+ JavaThread::get()->getJVM()->illegalMonitorStateException(Obj);
+ }
+
+ Obj->release();
+ return 0;
+ } else {
+ return -1;
+ }
END_JNI_EXCEPTION
- return 0;
+ return -1;
}
More information about the vmkit-commits
mailing list