[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