[vmkit-commits] [vmkit] r73134 - /vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Jun 9 02:26:29 PDT 2009
Author: geoffray
Date: Tue Jun 9 04:26:10 2009
New Revision: 73134
URL: http://llvm.org/viewvc/llvm-project?rev=73134&view=rev
Log:
Set the finalizer when it is native.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=73134&r1=73133&r2=73134&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Tue Jun 9 04:26:10 2009
@@ -1131,10 +1131,18 @@
// Destructor
Function* Finalizer = 0;
- JavaMethod* meth = (JavaMethod*)(RealVT->destructor);
- if (meth) {
- LLVMMethodInfo* LMI = getMethodInfo(meth);
- Finalizer = LMI->getMethod();
+ if (RealVT->operatorDelete) {
+ char* name = (char*)(RealVT->destructor);
+ std::vector<const Type*> Args;
+ const FunctionType* Ty = FunctionType::get(Type::VoidTy, Args, false);
+ Finalizer = Function::Create(Ty, GlobalValue::InternalLinkage, name,
+ getLLVMModule());
+ } else {
+ JavaMethod* meth = (JavaMethod*)(RealVT->destructor);
+ if (meth) {
+ LLVMMethodInfo* LMI = getMethodInfo(meth);
+ Finalizer = LMI->getMethod();
+ }
}
Elemts.push_back(Finalizer ?
ConstantExpr::getCast(Instruction::BitCast, Finalizer, PTy) : N);
More information about the vmkit-commits
mailing list