summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-07-26 12:09:07 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-07-26 12:09:07 +0000
commitb08787ecd10aeef88a909e2c43a99846f2e933e5 (patch)
tree24b089d5ba3dd31a4515aa75a56d9f3990a5bbfe
parent75eea32b80fb96d6dc563719458f64b1731a6118 (diff)
downloadlasso-b08787ecd10aeef88a909e2c43a99846f2e933e5.tar.gz
lasso-b08787ecd10aeef88a909e2c43a99846f2e933e5.tar.xz
lasso-b08787ecd10aeef88a909e2c43a99846f2e933e5.zip
Finished to implement lasso_login_destroy() and lasso_logout_destroy() methods
-rw-r--r--lasso/id-ff/login.c31
-rw-r--r--lasso/id-ff/login.h2
-rw-r--r--lasso/id-ff/logout.c35
-rw-r--r--lasso/id-ff/logout.h2
4 files changed, 68 insertions, 2 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 72b0c696..5862f8d2 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -37,6 +37,11 @@
static GObjectClass *parent_class = NULL;
+struct _LassoLoginPrivate
+{
+ gboolean dispose_has_run;
+};
+
/*****************************************************************************/
/* functions */
/*****************************************************************************/
@@ -851,6 +856,21 @@ lasso_login_process_response_msg(LassoLogin *login,
/*****************************************************************************/
static void
+lasso_login_dispose(LassoLogin *login)
+{
+ if (login->private->dispose_has_run) {
+ return;
+ }
+ login->private->dispose_has_run = TRUE;
+
+ debug("ProfileContext object 0x%x disposed ...\n", login);
+
+ /* unref reference counted objects */
+
+ parent_class->dispose(G_OBJECT(login));
+}
+
+static void
lasso_login_finalize(LassoLogin *login)
{
debug("Login object 0x%x finalized ...\n", login);
@@ -858,6 +878,8 @@ lasso_login_finalize(LassoLogin *login)
g_free(login->assertionArtifact);
g_free(login->response_dump);
+ g_free (login->private);
+
parent_class->finalize(G_OBJECT(login));
}
@@ -866,8 +888,14 @@ lasso_login_finalize(LassoLogin *login)
/*****************************************************************************/
static void
-lasso_login_instance_init(LassoLogin *login)
+lasso_login_instance_init(GTypeInstance *instance,
+ gpointer g_class)
{
+ LassoLogin *login = LASSO_LOGIN(instance);
+
+ login->private = g_new (LassoLoginPrivate, 1);
+ login->private->dispose_has_run = FALSE;
+
login->protocolProfile = 0;
login->assertionArtifact = NULL;
login->response_dump = NULL;
@@ -880,6 +908,7 @@ lasso_login_class_init(LassoLoginClass *class)
parent_class = g_type_class_peek_parent(class);
/* override parent class methods */
+ gobject_class->dispose = (void *)lasso_login_dispose;
gobject_class->finalize = (void *)lasso_login_finalize;
}
diff --git a/lasso/id-ff/login.h b/lasso/id-ff/login.h
index 4607d3b7..50173af3 100644
--- a/lasso/id-ff/login.h
+++ b/lasso/id-ff/login.h
@@ -47,6 +47,7 @@ extern "C" {
typedef struct _LassoLogin LassoLogin;
typedef struct _LassoLoginClass LassoLoginClass;
+typedef struct _LassoLoginPrivate LassoLoginPrivate;
typedef enum {
lassoLoginProtocolProfileBrwsArt = 1,
@@ -61,6 +62,7 @@ struct _LassoLogin {
gchar *assertionArtifact;
gchar *response_dump;
/*< private >*/
+ LassoLoginPrivate *private;
};
struct _LassoLoginClass {
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 65219d7e..1bf252d6 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -27,6 +27,11 @@
static GObjectClass *parent_class = NULL;
+struct _LassoLogoutPrivate
+{
+ gboolean dispose_has_run;
+};
+
/*****************************************************************************/
/* public methods */
/*****************************************************************************/
@@ -489,10 +494,31 @@ lasso_logout_process_response_msg(LassoLogout *logout,
/*****************************************************************************/
static void
+lasso_logout_dispose(LassoLogout *logout)
+{
+ if (logout->private->dispose_has_run) {
+ return;
+ }
+ logout->private->dispose_has_run = TRUE;
+
+ debug("ProfileContext object 0x%x disposed ...\n", logout);
+
+ /* unref reference counted objects */
+ lasso_node_destroy(logout->first_request);
+ lasso_node_destroy(logout->first_response);
+
+ parent_class->dispose(G_OBJECT(logout));
+}
+
+static void
lasso_logout_finalize(LassoLogout *logout)
{
debug("Logout object 0x%x finalized ...\n", logout);
+ g_free(logout->first_remote_providerID);
+
+ g_free(logout->private);
+
parent_class->finalize(G_OBJECT(logout));
}
@@ -501,8 +527,14 @@ lasso_logout_finalize(LassoLogout *logout)
/*****************************************************************************/
static void
-lasso_logout_instance_init(LassoLogout *logout)
+lasso_logout_instance_init(GTypeInstance *instance,
+ gpointer g_class)
{
+ LassoLogout *logout = LASSO_LOGOUT(instance);
+
+ logout->private = g_new (LassoLogoutPrivate, 1);
+ logout->private->dispose_has_run = FALSE;
+
logout->first_request = NULL;
logout->first_response = NULL;
logout->first_remote_providerID = NULL;
@@ -515,6 +547,7 @@ lasso_logout_class_init(LassoLogoutClass *class)
parent_class = g_type_class_peek_parent(class);
/* override parent class methods */
+ gobject_class->dispose = (void *)lasso_logout_dispose;
gobject_class->finalize = (void *)lasso_logout_finalize;
}
diff --git a/lasso/id-ff/logout.h b/lasso/id-ff/logout.h
index adf3bdba..42644ca7 100644
--- a/lasso/id-ff/logout.h
+++ b/lasso/id-ff/logout.h
@@ -44,6 +44,7 @@ extern "C" {
typedef struct _LassoLogout LassoLogout;
typedef struct _LassoLogoutClass LassoLogoutClass;
+typedef struct _LassoLogoutPrivate LassoLogoutPrivate;
struct _LassoLogout {
LassoProfileContext parent;
@@ -54,6 +55,7 @@ struct _LassoLogout {
gchar *first_remote_providerID;
/*< private >*/
+ LassoLogoutPrivate *private;
};
struct _LassoLogoutClass {