aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/pas/pas-backend-summary.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/pas/pas-backend-summary.c')
-rw-r--r--addressbook/backend/pas/pas-backend-summary.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/addressbook/backend/pas/pas-backend-summary.c b/addressbook/backend/pas/pas-backend-summary.c
index a8683912f9..6c2c9a45c8 100644
--- a/addressbook/backend/pas/pas-backend-summary.c
+++ b/addressbook/backend/pas/pas-backend-summary.c
@@ -150,26 +150,30 @@ pas_backend_summary_dispose (GObject *object)
{
PASBackendSummary *summary = PAS_BACKEND_SUMMARY (object);
- if (summary->priv->dirty)
- g_warning ("Destroying dirty summary");
+ if (summary->priv) {
+ if (summary->priv->dirty)
+ g_warning ("Destroying dirty summary");
- if (summary->priv->flush_timeout) {
- g_source_remove (summary->priv->flush_timeout);
- summary->priv->flush_timeout = 0;
- }
+ if (summary->priv->flush_timeout) {
+ g_source_remove (summary->priv->flush_timeout);
+ summary->priv->flush_timeout = 0;
+ }
- if (summary->priv->fp)
- fclose (summary->priv->fp);
+ if (summary->priv->fp)
+ fclose (summary->priv->fp);
- g_free (summary->priv->summary_path);
- clear_items (summary);
- g_ptr_array_free (summary->priv->items, TRUE);
+ g_free (summary->priv->summary_path);
+ clear_items (summary);
+ g_ptr_array_free (summary->priv->items, TRUE);
- g_hash_table_destroy (summary->priv->id_to_item);
+ g_hash_table_destroy (summary->priv->id_to_item);
- g_free (summary->priv);
+ g_free (summary->priv);
+ summary->priv = NULL;
+ }
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void