sheepy

build system (sheepy) and package manager (spm) for C
git clone https://spartatek.se/git/sheepy.git
Log | Files | Refs | README | LICENSE

commit f23e747f86b4faebdaf22adde949c64858ab8837
parent 46eb3e390e247e4023d8e342fd2e1e0ca00d5b5a
Author: Remy Noulin <loader2x@gmail.com>
Date:   Mon,  6 Jan 2020 16:35:11 +0100

add cleanP, clean and cleanFinish in class template

cleanP declares an object, it must be assign before the end of the
block:

cleanP(obj) = NULL;

src/sheepy.h | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Diffstat:
Msrc/sheepy.h | 36++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/sheepy.h b/src/sheepy.h @@ -134,6 +134,30 @@ void registerMethodsClassTemplate(classTemplateFunctionst *f);\n\ \n\ classTemplatet* allocClassTemplate(void/*TODO INIT DATA */);\n\ \n\ +/* terminate classTemplatet val when it is out of scope */\n\ +void cleanUpClassTemplateTerminateG(classTemplatet **val);\n\ +\n\ +/* free classTemplatet val when it is out of scope */\n\ +void cleanUpClassTemplateFreeG(classTemplatet *val);\n\ +\n\ +/* finish classTemplatet val when it is out of scope */\n\ +void cleanUpClassTemplateFinishG(classTemplatet *val);\n\ +\n\ +/**\n\ + * declare pointer name with Type classTemplatet and terminate name when it is out of scope\n\ + */\n\ +#define cleanClassTemplateP(name) classTemplatet *name CLEANUP(cleanUpClassTemplateTerminateG)\n\ +\n\ +/**\n\ + * declare local object name with Type classTemplatet and free name when it is out of scope\n\ + */\n\ +#define cleanClassTemplate(name) classTemplatet name CLEANUP(cleanUpClassTemplateFreeG); initiateClassTemplate(&name)\n\ +\n\ +/**\n\ + * declare pointer name with Type classTemplatet and finish name when it is out of scope\n\ + */\n\ +#define cleanFinishClassTemplateP(name) classTemplatet *name CLEANUP(cleanUpClassTemplateFinishG)\n\ +\n\ /* end class classTemplate*/\n\ // vim: set expandtab ts=2 sw=2:" @@ -224,6 +248,18 @@ classTemplatet* allocClassTemplate(void/* TODO change parameter to get the initi }\n\ \n\ \n\ +void cleanUpClassTemplateTerminateG(classTemplatet **val) {\n\ + terminateO(*val);\n\ +}\n\ +\n\ +void cleanUpClassTemplateFreeG(classTemplatet *val) {\n\ + freeO(val);\n\ +}\n\ +\n\ +void cleanUpClassTemplateFinishG(classTemplatet *val) {\n\ + finishO(val);\n\ +}\n\ +\n\ local void freeClassTemplate(classTemplatet *self) {\n\ \n\ /* TODO free internal data (not the structure holding the function pointers) */\n\