diff options
author | Stefan Walter <stefw@src.gnome.org> | 2007-12-01 19:11:08 +0000 |
---|---|---|
committer | Stefan Walter <stefw@src.gnome.org> | 2007-12-01 19:11:08 +0000 |
commit | 14c03856d16a04737bcdb74d7acb2af882b7fec1 (patch) | |
tree | 3c07862a3869d084ca7fa540f42a1f518d9a12f3 | |
parent | 9205fc361c54ef83c8dea1b1a8e4b0ede7d9e3af (diff) | |
download | gnome-keyring-14c03856d16a04737bcdb74d7acb2af882b7fec1.tar.gz |
Fix object finalizing bugs.
* pk/gkr-pk-object-manager.c:
* pk/gkr-pk-object-storage.c:
* pk/gkr-pk-pubkey.c: Fix object finalizing bugs.
svn path=/trunk/; revision=923
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | pk/gkr-pk-object-manager.c | 2 | ||||
-rw-r--r-- | pk/gkr-pk-object-storage.c | 5 | ||||
-rw-r--r-- | pk/gkr-pk-pubkey.c | 4 |
4 files changed, 11 insertions, 4 deletions
@@ -1,5 +1,9 @@ 2007-12-01 Stef Walter <stef@memberwebs.com> + * pk/gkr-pk-object-manager.c: + * pk/gkr-pk-object-storage.c: + * pk/gkr-pk-pubkey.c: Fix object finalizing bugs. + * pk/gkr-pk-index.c: * pk/gkr-pk-object-storage.c: Store index files in *.keystore, and look for keys/certificates in ~/.gnome2/keystore diff --git a/pk/gkr-pk-object-manager.c b/pk/gkr-pk-object-manager.c index cd4538e6..db537d73 100644 --- a/pk/gkr-pk-object-manager.c +++ b/pk/gkr-pk-object-manager.c @@ -285,7 +285,7 @@ gkr_pk_object_manager_unregister (GkrPkObjectManager *objmgr, GkrPkObject *objec g_return_if_fail (GKR_IS_PK_OBJECT (object)); pv = GKR_PK_OBJECT_MANAGER_GET_PRIVATE (objmgr); - g_return_if_fail (object->manager != objmgr); + g_return_if_fail (object->manager == objmgr); g_return_if_fail (object->unique); remove_object_at_unique (objmgr, object->unique); diff --git a/pk/gkr-pk-object-storage.c b/pk/gkr-pk-object-storage.c index 3686f6ea..c14cc545 100644 --- a/pk/gkr-pk-object-storage.c +++ b/pk/gkr-pk-object-storage.c @@ -217,6 +217,7 @@ add_object (GkrPkObjectStorage *storage, GkrPkObject *object) gpointer k; g_assert (object); + g_assert (GKR_IS_PK_OBJECT (object)); g_assert (object->location); g_assert (!g_hash_table_lookup (pv->objects, object)); @@ -239,6 +240,7 @@ remove_object (GkrPkObjectStorage *storage, GkrPkObject *object) gpointer k; g_assert (object); + g_assert (GKR_IS_PK_OBJECT (object)); g_assert (object->location); g_assert (g_hash_table_lookup (pv->objects, object)); @@ -422,7 +424,6 @@ location_remove (GkrLocationWatch *watch, GQuark loc, GkrPkObjectStorage *storag { GkrPkObjectStoragePrivate *pv = GKR_PK_OBJECT_STORAGE_GET_PRIVATE (storage); GArray *objs, *copy; - GkrPkObject *object; gpointer k; guint i; @@ -439,7 +440,7 @@ location_remove (GkrLocationWatch *watch, GQuark loc, GkrPkObjectStorage *storag copy = g_array_sized_new (FALSE, FALSE, sizeof (GkrPkObject*), objs->len); g_array_append_vals (copy, objs->data, objs->len); for (i = 0; i < copy->len; ++i) - remove_object (storage, object); + remove_object (storage, g_array_index (copy, GkrPkObject*, i)); g_array_free (copy, TRUE); } diff --git a/pk/gkr-pk-pubkey.c b/pk/gkr-pk-pubkey.c index 9ed8c007..abdfe584 100644 --- a/pk/gkr-pk-pubkey.c +++ b/pk/gkr-pk-pubkey.c @@ -490,7 +490,9 @@ gkr_pk_pubkey_instance (GkrPkObjectManager *manager, GQuark location, gcry_sexp_ return GKR_PK_PUBKEY (pub); } - return GKR_PK_PUBKEY (gkr_pk_pubkey_new (location, s_key)); + pub = gkr_pk_pubkey_new (location, s_key); + gkr_pk_object_manager_register (manager, pub); + return GKR_PK_PUBKEY (pub); } gkrconstunique |