diff options
author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2008-08-01 14:10:34 +0000 |
---|---|---|
committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2008-08-01 14:10:34 +0000 |
commit | 60ce087798241df90a19eea4d6232eb60cc54ab1 (patch) | |
tree | 54b8acdc0951b7bbc5db42b27292c4d6e425e658 /lasso/utils.h | |
parent | e9403b8f71b7897f8bb653f65c4cf28de99d1d73 (diff) | |
download | lasso-60ce087798241df90a19eea4d6232eb60cc54ab1.tar.gz lasso-60ce087798241df90a19eea4d6232eb60cc54ab1.tar.xz lasso-60ce087798241df90a19eea4d6232eb60cc54ab1.zip |
* lasso/utils.h: add utility macros to releases libxml objects, to check null
parameters or badly typed parameters. add a macro that go to an "exit" label
and set the return code variable named "rc".
Diffstat (limited to 'lasso/utils.h')
-rw-r--r-- | lasso/utils.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lasso/utils.h b/lasso/utils.h index 16aa39d6..8e6ee0ad 100644 --- a/lasso/utils.h +++ b/lasso/utils.h @@ -71,6 +71,7 @@ g_free(dest); dest = NULL; \ } \ } + #define g_release_gobject(dest) \ { \ if (dest) { \ @@ -78,6 +79,7 @@ dest = NULL; \ } \ } + #define g_release_list_of_strings(dest) \ { \ if (dest) { \ @@ -86,6 +88,7 @@ dest = NULL; \ } \ } + #define g_release_list_of_gobjects(dest) \ { \ if (dest) { \ @@ -94,6 +97,7 @@ dest = NULL; \ } \ } + #define g_release_list(dest) \ { \ if (dest) { \ @@ -101,6 +105,7 @@ dest = NULL; \ } \ } + #define g_unlink_and_release_node(node) \ { \ if (node) { \ @@ -110,8 +115,45 @@ } \ } +#define g_release_node(node) \ + { \ + if (node) { \ + xmlFreeNode(node); \ + node = NULL; \ + } \ + } + +#define g_release_doc(doc) \ + { \ + if (doc) { \ + xmlFreeDoc(doc); \ + doc = NULL; \ + } \ + } +#define g_release_xmlchar(dest) \ + { \ + if (dest) { \ + xmlFree(dest); dest = NULL; \ + } \ + } + /* Bad param handling */ #define g_return_val_if_invalid_param(kind, name, val) \ g_return_val_if_fail(LASSO_IS_##kind(name), val) +#define g_bad_param(kind, name) \ + g_return_val_if_invalid_param(kind, name, \ + LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + +#define g_null_param(name) \ + g_return_val_if_fail(name != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ); + +#define goto_exit_if_fail(condition, rc_value) \ + {\ + if (! (condition) ) {\ + rc = (rc_value); \ + goto exit; \ + } \ + } + #endif /* __LASSO_UTILS_H__ */ |