diff options
author | Travis CI <zmoelnig@travis-ci.umlaeute.mur.at> | 2015-03-20 23:05:12 +0000 |
---|---|---|
committer | Travis CI <zmoelnig@travis-ci.umlaeute.mur.at> | 2015-03-20 23:05:12 +0000 |
commit | f7298d60c6d9870ecc09a48152379038f289b61c (patch) | |
tree | 9ac10a0fbcb46c1929c85b51dde1aaf96e4d0311 /Gem/develop/include/Gem/Base/CPPExtern.h | |
parent | 31839b6a33a87889e43abadb307ce81c83580492 (diff) |
Gem 136832db9e7bc7721b329539d6756e51b5f02abe linux/amd64
built 'master:136832db9e7bc7721b329539d6756e51b5f02abe' for linux/amd64
Diffstat (limited to 'Gem/develop/include/Gem/Base/CPPExtern.h')
-rw-r--r-- | Gem/develop/include/Gem/Base/CPPExtern.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Gem/develop/include/Gem/Base/CPPExtern.h b/Gem/develop/include/Gem/Base/CPPExtern.h index 0350681..ddacc54 100644 --- a/Gem/develop/include/Gem/Base/CPPExtern.h +++ b/Gem/develop/include/Gem/Base/CPPExtern.h @@ -122,6 +122,12 @@ class GEM_EXTERN CPPExtern // Creation callback static void real_obj_setupCallback(t_class *) {} + /////////// + // called directly before the destructor + // normally you should not override this (use the dtor!) + // if you do override this, make sure that you call the parent as well + virtual void beforeDeletion(); + private: ////////// @@ -157,7 +163,9 @@ class GEM_EXTERN CPPExtern #define CPPEXTERN_HEADER(NEW_CLASS, PARENT_CLASS) \ public: \ static void obj_freeCallback(void *data) \ -{ CPPExtern *mydata = ((Obj_header *)data)->data; delete mydata; \ +{ CPPExtern *mydata = ((Obj_header *)data)->data; \ + GetMyClass(data)->beforeDeletion(); \ + delete mydata; \ ((Obj_header *)data)->Obj_header::~Obj_header(); } \ static void real_obj_setupCallback(t_class *classPtr) \ { PARENT_CLASS::real_obj_setupCallback(classPtr); \ |