[vmkit-commits] [vmkit] r198236 - use nullValue when a native call return a null handle

Gael Thomas gael.thomas at lip6.fr
Mon Dec 30 10:56:46 PST 2013


Author: gthomas
Date: Mon Dec 30 12:56:45 2013
New Revision: 198236

URL: http://llvm.org/viewvc/llvm-project?rev=198236&view=rev
Log:
use nullValue when a native call return a null handle

Modified:
    vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc

Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=198236&r1=198235&r2=198236&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Mon Dec 30 12:56:45 2013
@@ -86,6 +86,10 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
 	}
 #endif
 
+	nullValue = builder
+		->CreateIntToPtr(llvm::ConstantInt::get(builder->getIntPtrTy(vm->dataLayout()), (uintptr_t)0),
+										 vm->typeJ3ObjectPtr);
+
 	if(J3Cst::isNative(method->access()))
 		generateNative();
 	else
@@ -1492,10 +1496,6 @@ void J3CodeGen::generateJava() {
 	if(!reader.adjustSize(length))
 		J3::classFormatError(cl, L"Code attribute of %ls %ls is too large (%d)", method->name()->cStr(), method->sign()->cStr(), length);
 
-	nullValue = builder
-		->CreateIntToPtr(llvm::ConstantInt::get(builder->getIntPtrTy(vm->dataLayout()), (uintptr_t)0),
-										 vm->typeJ3ObjectPtr);
-
 	llvm::DIBuilder* dbgBuilder = new llvm::DIBuilder(*module());
 
   dbgInfo =
@@ -1620,7 +1620,7 @@ void J3CodeGen::generateNative() {
 			builder->CreateCondBr(builder->CreateIsNull(res), ifnull, ifnotnull);
 
 			builder->SetInsertPoint(bb = ifnull);
-			builder->CreateRet(unflatten(res, methodType->out()));
+			builder->CreateRet(unflatten(nullValue, methodType->out()));
 
 			builder->SetInsertPoint(bb = ifnotnull);
 			res = unflatten(handleToObject(res), methodType->out());





More information about the vmkit-commits mailing list