Mercurial > projects > ldc
diff ir/irstruct.h @ 1230:e67c85d6e680
Completed interface implementation. Hopefully that's it for now..
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Thu, 16 Apr 2009 13:18:56 +0200 |
parents | 79758fd2f48a |
children | 752bed475b75 |
line wrap: on
line diff
--- a/ir/irstruct.h Thu Apr 16 11:01:49 2009 +0200 +++ b/ir/irstruct.h Thu Apr 16 13:18:56 2009 +0200 @@ -84,6 +84,14 @@ /// Basically: static object.Interface[num_interfaces] llvm::GlobalVariable* classInterfacesArray; + /// std::vector of BaseClass* + typedef std::vector<BaseClass*> BaseClassVector; + + /// Array of all interface vtbl implementations - in order - implemented + /// by this class. + /// Corresponds to the Interface instances needed to be output. + BaseClassVector interfacesWithVtbls; + ////////////////////////////////////////////////////////////////////////// /// Create static default initializer for struct. @@ -93,7 +101,10 @@ LLConstant* createClassDefaultInitializer(); /// Returns vtbl for interface implementation, creates it if not already built. - llvm::GlobalVariable* getInterfaceVtbl(BaseClass* b, bool new_inst); + llvm::GlobalVariable* getInterfaceVtbl( + BaseClass* b, + bool new_inst, + size_t interfaces_index); /// Add base class data to initializer list. /// Also creates the IrField instance for each data field.