From 8456cf5ccd44911f4e56538fe0880dd7fc7cd96d Mon Sep 17 00:00:00 2001 From: danieldg Date: Fri, 2 Oct 2009 03:15:46 +0000 Subject: Fix valgrind issues and crashes on exit git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11794 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/dynamic.h | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) (limited to 'include/dynamic.h') diff --git a/include/dynamic.h b/include/dynamic.h index ec09675e0..fe150716e 100644 --- a/include/dynamic.h +++ b/include/dynamic.h @@ -89,25 +89,21 @@ class CoreExport FindSymbolException : public CoreException virtual ~FindSymbolException() throw() {}; }; +class Module; /** This is the highest-level class of the DLLFactory system used to load InspIRCd modules and commands. * All the dirty mucking around with dl*() is done by DLLManager, all this does it put a pretty shell on * it and make it nice to use to load modules and core commands. This class is quite specialised for these * two uses and it may not be useful more generally -- use DLLManager directly for that. */ -template class CoreExport DLLFactory : public DLLManager +class CoreExport DLLFactory : public DLLManager { - protected: - /** This typedef represents the init_* function within each module or command. - * The init_module function is the only exported extern "C" declaration - * in any module file. In a cmd_*.cpp file the equivilant is init_command - */ - typedef ReturnType * (initfunctype) (); + public: + typedef Module* (initfunctype)(); /** Pointer to the init function. */ - initfunctype* init_func; + initfunctype* const init_func; - public: /** Default constructor. * This constructor passes its paramerers down through DLLFactoryBase and then DLLManager * to load the module, then calls the factory function to retrieve a pointer to a ModuleFactory @@ -132,21 +128,6 @@ template class CoreExport DLLFactory : public DLLManager } } - /** Calls the 'init_module' C exported function within a module, which - * returns a pointer to a Module derived object. - */ - ReturnType* CallInit() - { - if(init_func) - { - return init_func(); - } - else - { - return NULL; - } - } - /** The destructor deletes the ModuleFactory pointer. */ ~DLLFactory() -- cgit v1.2.3