diff options
-rw-r--r-- | lasso/Attic/protocols/provider.c | 44 | ||||
-rw-r--r-- | lasso/Attic/protocols/provider.h | 2 | ||||
-rw-r--r-- | lasso/xml/xml.c | 2 |
3 files changed, 44 insertions, 4 deletions
diff --git a/lasso/Attic/protocols/provider.c b/lasso/Attic/protocols/provider.c index 6983cefe..f73af4f8 100644 --- a/lasso/Attic/protocols/provider.c +++ b/lasso/Attic/protocols/provider.c @@ -24,6 +24,11 @@ #include <lasso/protocols/provider.h> +struct _LassoProviderPrivate +{ + gboolean dispose_has_run; +}; + /*****************************************************************************/ /* public methods */ /*****************************************************************************/ @@ -144,6 +149,32 @@ static gchar *lasso_provider_get_direct_child_content(LassoProvider *provider, return(lasso_node_get_content(node)); } +/*****************************************************************************/ +/* overrided parent class methods */ +/*****************************************************************************/ + +static void +lasso_provider_dispose(LassoProvider *provider) +{ + if (provider->private->dispose_has_run) { + return; + } + provider->private->dispose_has_run = TRUE; + + /* unref reference counted objects */ + /* we don't have any here */ + debug(INFO, "Provider object 0x%x disposed ...\n", provider); +} + +static void +lasso_provider_finalize(LassoProvider *provider) +{ + debug(INFO, "Provider object 0x%x finalized ...\n", provider); + + lasso_node_destroy(provider->metadata); + g_free(provider->public_key); + g_free(provider->certificate); +} /*****************************************************************************/ /* instance and class init functions */ @@ -152,11 +183,20 @@ static gchar *lasso_provider_get_direct_child_content(LassoProvider *provider, static void lasso_provider_instance_init(LassoProvider *provider) { - + provider->private = g_new (LassoProviderPrivate, 1); + provider->private->dispose_has_run = FALSE; + provider->metadata = NULL; + provider->public_key = NULL; + provider->certificate = NULL; } static void -lasso_provider_class_init(LassoProviderClass *klass) { +lasso_provider_class_init(LassoProviderClass *class) { + GObjectClass *gobject_class = G_OBJECT_CLASS(class); + + /* override parent class methods */ + gobject_class->dispose = (void *)lasso_provider_dispose; + gobject_class->finalize = (void *)lasso_provider_finalize; } GType lasso_provider_get_type() { diff --git a/lasso/Attic/protocols/provider.h b/lasso/Attic/protocols/provider.h index 2bd12287..5d505f6a 100644 --- a/lasso/Attic/protocols/provider.h +++ b/lasso/Attic/protocols/provider.h @@ -44,6 +44,7 @@ extern "C" { typedef struct _LassoProvider LassoProvider; typedef struct _LassoProviderClass LassoProviderClass; +typedef struct _LassoProviderPrivate LassoProviderPrivate; struct _LassoProvider { GObject parent; @@ -54,6 +55,7 @@ struct _LassoProvider { gchar *certificate; /*< private >*/ + LassoProviderPrivate *private; }; struct _LassoProviderClass { diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c index b33fa1f4..ea97cbd1 100644 --- a/lasso/xml/xml.c +++ b/lasso/xml/xml.c @@ -1254,7 +1254,6 @@ lasso_node_dispose(LassoNode *node) /* unref reference counted objects */ /* we don't have any here */ - //g_print("%s 0x%x disposed ...\n", lasso_node_get_name(node), node); debug(INFO, "%s 0x%x disposed ...\n", lasso_node_get_name(node), node); } @@ -1264,7 +1263,6 @@ lasso_node_finalize(LassoNode *node) gint i; LassoNode *child; - //g_print("%s 0x%x finalized ...\n", lasso_node_get_name(node), node); debug(INFO, "%s 0x%x finalized ...\n", lasso_node_get_name(node), node); if (node->private->node_is_weak_ref == FALSE) { |