From ec4fd6dd3809a055b66c28f841df277e4cd9f62e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 18 May 2012 18:03:24 +0000 Subject: Beginnings of a test framework. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4427 a436a847-0d15-0410-975c-d299462d15a1 --- ingen/shared/Module.hpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'ingen/shared/Module.hpp') diff --git a/ingen/shared/Module.hpp b/ingen/shared/Module.hpp index 1552a225..81179426 100644 --- a/ingen/shared/Module.hpp +++ b/ingen/shared/Module.hpp @@ -19,8 +19,6 @@ #include -#include "raul/SharedPtr.hpp" - namespace Ingen { namespace Shared { @@ -32,12 +30,23 @@ class World; * @ingroup IngenShared */ struct Module { - virtual ~Module(); + Module() : library(NULL) {} + virtual ~Module() {} virtual void load(Ingen::Shared::World* world) = 0; virtual void run(Ingen::Shared::World* world) {} - SharedPtr library; + /** Library implementing this module. + * + * This is managed by the World and not this class, since closing the library + * in this destructor could possibly reference code from the library + * afterwards and cause a segfault on exit. + */ + Glib::Module* library; + +private: + Module(const Module& noncopyable); + Module& operator=(const Module& noncopyable); }; } // namespace Shared -- cgit v1.2.1