summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/xml/xml.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index f93a148f..7a52b8ce 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -1375,6 +1375,22 @@ class_init(LassoNodeClass *class)
class->node_data = NULL;
}
+static void
+base_class_finalize(LassoNodeClass *class)
+{
+ if (class->node_data) {
+ LassoNodeClassData *data = class->node_data;
+
+ if (data->ns) {
+ xmlFreeNs(data->ns);
+ }
+ if (data->node_name) {
+ g_free(data->node_name);
+ }
+ g_free(class->node_data);
+ }
+}
+
GType
lasso_node_get_type()
{
@@ -1384,7 +1400,7 @@ lasso_node_get_type()
static const GTypeInfo this_info = {
sizeof (LassoNodeClass),
NULL,
- NULL,
+ (GBaseFinalizeFunc) base_class_finalize,
(GClassInitFunc) class_init,
NULL,
NULL,