[Galago-commits] r2664 - in trunk/libgalago: . libgalago
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Mon Apr 3 03:06:03 PDT 2006
Author: chipx86
Date: 2006-04-03 03:05:56 -0700 (Mon, 03 Apr 2006)
New Revision: 2664
Modified:
trunk/libgalago/ChangeLog
trunk/libgalago/libgalago/galago-account.c
trunk/libgalago/libgalago/galago-object.c
trunk/libgalago/libgalago/galago-presence.c
Log:
Protect a bit better from crashes when GalagoAccount's and GalagoPresence's destroy functions are called more than once.
Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog 2006-04-03 08:20:17 UTC (rev 2663)
+++ trunk/libgalago/ChangeLog 2006-04-03 10:05:56 UTC (rev 2664)
@@ -1,3 +1,11 @@
+Mon Apr 03 03:05:07 PDT 2006 Christian Hammond <chipx86 at chipx86.com>
+
+ * libgalago/galago-account.c:
+ * libgalago/galago-object.c:
+ * libgalago/galago-presence.c:
+ - Protect a bit better from crashes when GalagoAccount's and
+ GalagoPresence's destroy functions are called more than once.
+
Mon Apr 03 01:18:29 PDT 2006 Christian Hammond <chipx86 at chipx86.com>
* libgalago/galago-account.c:
Modified: trunk/libgalago/libgalago/galago-account.c
===================================================================
--- trunk/libgalago/libgalago/galago-account.c 2006-04-03 08:20:17 UTC (rev 2663)
+++ trunk/libgalago/libgalago/galago-account.c 2006-04-03 10:05:56 UTC (rev 2664)
@@ -235,19 +235,19 @@
g_return_if_fail(account != NULL);
- service = galago_account_get_service(account);
- person = galago_account_get_person(account);
+ if (account->priv != NULL)
+ {
+ service = galago_account_get_service(account);
+ person = galago_account_get_person(account);
- _galago_service_remove_account(service, account);
+ _galago_service_remove_account(service, account);
- if (person != NULL)
- {
- _galago_person_remove_account(person, account);
- account->priv->person = NULL;
- }
+ if (person != NULL)
+ {
+ _galago_person_remove_account(person, account);
+ account->priv->person = NULL;
+ }
- if (account->priv != NULL)
- {
if (account->priv->presence != NULL)
galago_object_destroy(GALAGO_OBJECT(account->priv->presence));
Modified: trunk/libgalago/libgalago/galago-object.c
===================================================================
--- trunk/libgalago/libgalago/galago-object.c 2006-04-03 08:20:17 UTC (rev 2663)
+++ trunk/libgalago/libgalago/galago-object.c 2006-04-03 10:05:56 UTC (rev 2664)
@@ -258,7 +258,6 @@
if (!GALAGO_OBJECT_HAS_FLAG(object, GALAGO_OBJECT_IN_DESTRUCTION))
g_object_run_dispose(G_OBJECT(object));
-
}
const gchar *
Modified: trunk/libgalago/libgalago/galago-presence.c
===================================================================
--- trunk/libgalago/libgalago/galago-presence.c 2006-04-03 08:20:17 UTC (rev 2663)
+++ trunk/libgalago/libgalago/galago-presence.c 2006-04-03 10:05:56 UTC (rev 2664)
@@ -174,19 +174,20 @@
galago_presence_destroy(GalagoObject *object)
{
GalagoPresence *presence = GALAGO_PRESENCE(object);
- GalagoAccount *account;
- account = galago_presence_get_account(presence);
-
- if (account != NULL && GALAGO_OBJECT_IS_LOCAL(presence) &&
- galago_account_get_presence(account, FALSE) == presence)
+ if (presence->priv != NULL)
{
- _galago_account_set_presence(account, NULL);
- _galago_dbus_account_destroy_presence(account, presence);
- }
+ GalagoAccount *account;
- if (presence->priv != NULL)
- {
+ account = galago_presence_get_account(presence);
+
+ if (account != NULL && GALAGO_OBJECT_IS_LOCAL(presence) &&
+ galago_account_get_presence(account, FALSE) == presence)
+ {
+ _galago_account_set_presence(account, NULL);
+ _galago_dbus_account_destroy_presence(account, presence);
+ }
+
if (presence->priv->statuses != NULL)
{
g_list_foreach(presence->priv->statuses,
More information about the galago-commits
mailing list