summaryrefslogtreecommitdiffstats
path: root/lasso/utils.h
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2008-08-01 14:10:34 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2008-08-01 14:10:34 +0000
commit60ce087798241df90a19eea4d6232eb60cc54ab1 (patch)
tree54b8acdc0951b7bbc5db42b27292c4d6e425e658 /lasso/utils.h
parente9403b8f71b7897f8bb653f65c4cf28de99d1d73 (diff)
downloadlasso-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.h42
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__ */