[vmkit-commits] [vmkit] r61505 - /vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Dec 30 15:13:46 PST 2008


Author: geoffray
Date: Tue Dec 30 17:13:29 2008
New Revision: 61505

URL: http://llvm.org/viewvc/llvm-project?rev=61505&view=rev
Log:
Fix type of a class when setting it to a Java object.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp?rev=61505&r1=61504&r2=61505&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJITOpcodes.cpp Tue Dec 30 17:13:29 2008
@@ -1839,6 +1839,9 @@
             compilingClass->classLoader->bootstrapLoader;
           UserClassArray* dcl = loader->getArrayClass(id);
           valCl = module->getNativeClass(dcl);
+          if (valCl->getType() != module->JavaCommonClassType)
+            valCl = new BitCastInst(valCl, module->JavaCommonClassType, "",
+                                    currentBlock);
 #else
           Value* args[2] = { isolateLocal,
                              ConstantInt::get(Type::Int32Ty, id - 4) };
@@ -1860,6 +1863,9 @@
           
             UserCommonClass* dcl = JCL->constructArray(arrayName);
             valCl = module->getNativeClass(dcl);
+            if (valCl->getType() != module->JavaCommonClassType)
+              valCl = new BitCastInst(valCl, module->JavaCommonClassType, "",
+                                      currentBlock);
 
           } else {
             const llvm::Type* Ty = 





More information about the vmkit-commits mailing list