diff ir/irstruct.cpp @ 307:7ade5e035beb trunk

[svn r328] Fixed an issue with interfaces where the vtable type of a interface implemented could be invalid. Fixes several tango modules like, FileStream, ServerSocket and most tina cluster modules :)
author lindquist
date Sat, 28 Jun 2008 03:45:18 +0200
parents e3355ce5444b
children 74101be2a553
line wrap: on
line diff
--- a/ir/irstruct.cpp	Fri Jun 27 23:58:22 2008 +0200
+++ b/ir/irstruct.cpp	Sat Jun 28 03:45:18 2008 +0200
@@ -4,15 +4,11 @@
 #include "ir/irstruct.h"
 #include "gen/irstate.h"
 
-#if OPAQUE_VTBLS
-IrInterface::IrInterface(BaseClass* b, const llvm::ArrayType* vt)
-#else
-IrInterface::IrInterface(BaseClass* b, const llvm::StructType* vt)
-#endif
+IrInterface::IrInterface(BaseClass* b)
 {
     base = b;
     decl = b->base;
-    vtblTy = vt;
+    vtblTy = NULL;
     vtblInit = NULL;
     vtbl = NULL;
     infoTy = NULL;
@@ -24,6 +20,7 @@
 
 IrInterface::~IrInterface()
 {
+    delete vtblTy;
 }
 
 //////////////////////////////////////////////////////////////////////////////