[vmkit-commits] [vmkit] r145090 - in /vmkit/trunk/lib/j3/ClassLib: ArrayCopy.inc OpenJDK/OpenJDK.inc

Will Dietz wdietz2 at illinois.edu
Tue Nov 22 15:55:00 PST 2011


Author: wdietz2
Date: Tue Nov 22 17:55:00 2011
New Revision: 145090

URL: http://llvm.org/viewvc/llvm-project?rev=145090&view=rev
Log:
Small robustness improvements when passed NULL JavaObjects.

Now passes mauve's j.l.System tests, other than j.l.System.security

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

Modified: vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc?rev=145090&r1=145089&r2=145090&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/ArrayCopy.inc Tue Nov 22 17:55:00 2011
@@ -14,8 +14,6 @@
   llvm_gcroot(src, 0);
   llvm_gcroot(dst, 0);
   llvm_gcroot(cur, 0);
-  assert(src->getVirtualTable());
-  assert(dst->getVirtualTable());
 
   JavaThread* th = JavaThread::get();
   Jnjvm *vm = th->getJVM();
@@ -32,6 +30,9 @@
     UNREACHABLE();
   }
 
+  assert(src->getVirtualTable());
+  assert(dst->getVirtualTable());
+
   UserClassArray* ts = (UserClassArray*)JavaObject::getClass(src);
   UserClassArray* td = (UserClassArray*)JavaObject::getClass(dst);
   UserCommonClass* dstType = td->baseClass();

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=145090&r1=145089&r2=145090&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc Tue Nov 22 17:55:00 2011
@@ -110,7 +110,7 @@
 
 JNIEXPORT jint JNICALL
 JVM_IHashCode(JNIEnv *env, jobject _obj) {
-  JavaObject * obj = *(JavaObject**)_obj;
+  JavaObject * obj = _obj ? *(JavaObject**)_obj : 0;
   llvm_gcroot(obj, 0);
 
   jint hash = (obj == NULL) ? 0 : JavaObject::hashCode(obj);
@@ -226,8 +226,8 @@
 
   BEGIN_JNI_EXCEPTION
 
-  src = *(JavaObject**)jsrc;
-  dst = *(JavaObject**)jdst;
+  src = jsrc ? *(JavaObject**)jsrc : 0;
+  dst = jdst ? *(JavaObject**)jdst : 0;
 
   ArrayCopy(src, sstart, dst, dstart, len);
 





More information about the vmkit-commits mailing list