aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog12
-rw-r--r--addressbook/backend/pas/pas-backend-file.c3
-rw-r--r--addressbook/gui/component/addressbook.c8
3 files changed, 23 insertions, 0 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index c48b3a41c6..ae2e163195 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,15 @@
+2001-05-02 JP Rosevear <jpr@ximian.com>
+
+ * gui/component/addressbook.c (addressbook_view_free): unref the
+ book if the view is being destroyed
+
+ * backend/pas/pas-backend-file.c
+ (pas_backend_file_process_get_book_view): unref the book_view when
+ we are finished, it is only interesting if someone else has reffed
+ it now (weak reference)
+ (pas_backend_file_add_client): unref the book for the same reason
+ as above
+
2001-04-30 JP Rosevear <jpr@ximian.com>
* backend/pas/pas-backend-file.c (vcard_matches_search): if the
diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c
index b681be8f25..fed9718d3e 100644
--- a/addressbook/backend/pas/pas-backend-file.c
+++ b/addressbook/backend/pas/pas-backend-file.c
@@ -1018,6 +1018,7 @@ pas_backend_file_process_get_book_view (PASBackend *backend,
g_free(req->search);
CORBA_exception_init(&ev);
+ bonobo_object_unref (BONOBO_OBJECT (book_view));
bonobo_object_release_unref (req->listener, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
@@ -1456,6 +1457,8 @@ pas_backend_file_add_client (PASBackend *backend,
pas_book_report_writable (book, bf->priv->writable);
}
+ bonobo_object_unref (BONOBO_OBJECT (book));
+
return TRUE;
}
diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c
index f165217f14..197de831fa 100644
--- a/addressbook/gui/component/addressbook.c
+++ b/addressbook/gui/component/addressbook.c
@@ -352,6 +352,14 @@ control_activate_cb (BonoboControl *control,
static void
addressbook_view_free(AddressbookView *view)
{
+ EBook *book;
+
+ gtk_object_get(GTK_OBJECT(view->view),
+ "book", &book,
+ NULL);
+ if (view->uri)
+ gtk_object_unref (GTK_OBJECT (book));
+
if (view->properties)
bonobo_object_unref(BONOBO_OBJECT(view->properties));
g_free(view->passwd);