summaryrefslogtreecommitdiff
path: root/gcr
diff options
context:
space:
mode:
authorNiels De Graef <nielsdegraef@gmail.com>2022-07-17 21:09:55 +0200
committerNiels De Graef <nielsdegraef@gmail.com>2022-07-17 21:09:55 +0200
commit683c081a3ecfebc4e1ed356c81d67a5bc878c778 (patch)
treecbc98175421f8befb4e7729ec8af4413ea153487 /gcr
parent7ea633f385545e46a329e42d535abb23991c6bd5 (diff)
downloadgcr-683c081a3ecfebc4e1ed356c81d67a5bc878c778.tar.gz
Drop Gck list API
gck provided some APIs that made working with lists of `GObject`s easier. GLib has for a long time added API that works well enough for the same use case, like `g_list_copy_deep()`, `g_list_free_full()` and more recently also `g_clear_list()`, so use those instead. This commit also bumps the required GLib version to a more modern 2.64 (which is needed for the `g_clear_list()` API).
Diffstat (limited to 'gcr')
-rw-r--r--gcr/frob-certificate-request.c2
-rw-r--r--gcr/gcr-importer.c2
-rw-r--r--gcr/gcr-library.c19
-rw-r--r--gcr/gcr-pkcs11-certificate.c2
-rw-r--r--gcr/gcr-pkcs11-importer.c23
-rw-r--r--gcr/gcr-subject-public-key.c2
-rw-r--r--gcr/gcr-trust.c14
-rw-r--r--gcr/test-certificate-chain.c2
-rw-r--r--gcr/test-pkcs11-certificate.c2
-rw-r--r--gcr/test-trust.c2
10 files changed, 24 insertions, 46 deletions
diff --git a/gcr/frob-certificate-request.c b/gcr/frob-certificate-request.c
index 459f391..ae5b904 100644
--- a/gcr/frob-certificate-request.c
+++ b/gcr/frob-certificate-request.c
@@ -48,7 +48,7 @@ load_key_for_uri (const gchar *uri)
modules = gcr_pkcs11_get_modules ();
enumerator = gck_modules_enumerate_uri (modules, uri, GCK_SESSION_LOGIN_USER |
GCK_SESSION_READ_ONLY, &error);
- gck_list_unref_free (modules);
+ g_clear_list (&modules, g_object_unref);
interaction = console_interaction_new ();
gck_enumerator_set_interaction (enumerator, interaction);
diff --git a/gcr/gcr-importer.c b/gcr/gcr-importer.c
index 4cacece..f731ffa 100644
--- a/gcr/gcr-importer.c
+++ b/gcr/gcr-importer.c
@@ -295,7 +295,7 @@ gcr_importer_queue_for_parsed (GcrImporter *importer,
* will not be queued on that importer.
*
* Returns: (transfer full) (element-type Gcr.Importer): a new set of importers
- * that queued the item, which should be freed with gck_list_unref_free()
+ * that queued the item.
*/
GList *
gcr_importer_queue_and_filter_for_parsed (GList *importers,
diff --git a/gcr/gcr-library.c b/gcr/gcr-library.c
index efc4b4a..15c486d 100644
--- a/gcr/gcr-library.c
+++ b/gcr/gcr-library.c
@@ -103,8 +103,7 @@ _gcr_uninitialize_library (void)
{
G_LOCK (modules);
- gck_list_unref_free (all_modules);
- all_modules = NULL;
+ g_clear_list (&all_modules, g_object_unref);
initialized_modules = FALSE;
G_UNLOCK (modules);
@@ -209,7 +208,7 @@ on_initialize_registered (GObject *object,
}
G_UNLOCK (modules);
- gck_list_unref_free (results);
+ g_clear_list (&results, g_object_unref);
g_debug ("completed initialize of registered modules");
g_task_return_boolean (task, TRUE);
@@ -308,7 +307,7 @@ gcr_pkcs11_initialize (GCancellable *cancellable,
g_propagate_error (error, err);
}
- gck_list_unref_free (results);
+ g_clear_list (&results, g_object_unref);
return (err == NULL);
}
@@ -321,8 +320,6 @@ gcr_pkcs11_initialize (GCancellable *cancellable,
* An empty list of modules will be returned if [func@pkcs11_set_modules],
* or [func@pkcs11_initialize] has not yet run.
*
- * When done with the list, free it with gck_list_unref_free().
- *
* Returns: (transfer full) (element-type Gck.Module): a newly allocated list
* of #GckModule objects
*/
@@ -333,7 +330,7 @@ gcr_pkcs11_get_modules (void)
g_debug ("pkcs11 not yet initialized");
else if (!all_modules)
g_debug ("no modules loaded");
- return gck_list_ref_copy (all_modules);
+ return g_list_copy_deep (all_modules, (GCopyFunc) g_object_ref, NULL);
}
/**
@@ -350,13 +347,11 @@ gcr_pkcs11_get_modules (void)
void
gcr_pkcs11_set_modules (GList *modules)
{
- GList *l;
-
- for (l = modules; l; l = g_list_next (l))
+ for (GList *l = modules; l; l = g_list_next (l))
g_return_if_fail (GCK_IS_MODULE (l->data));
- modules = gck_list_ref_copy (modules);
- gck_list_unref_free (all_modules);
+ modules = g_list_copy_deep (modules, (GCopyFunc) g_object_ref, NULL);
+ g_clear_list (&all_modules, g_object_unref);
all_modules = modules;
initialized_modules = TRUE;
}
diff --git a/gcr/gcr-pkcs11-certificate.c b/gcr/gcr-pkcs11-certificate.c
index 8c19dca..f5f798b 100644
--- a/gcr/gcr-pkcs11-certificate.c
+++ b/gcr/gcr-pkcs11-certificate.c
@@ -94,7 +94,7 @@ perform_lookup_certificate (GckAttributes *search,
modules = gcr_pkcs11_get_modules ();
en = gck_modules_enumerate_objects (modules, search, 0);
- gck_list_unref_free (modules);
+ g_clear_list (&modules, g_object_unref);
object = gck_enumerator_next (en, cancellable, error);
g_object_unref (en);
diff --git a/gcr/gcr-pkcs11-importer.c b/gcr/gcr-pkcs11-importer.c
index e65e95f..7844af5 100644
--- a/gcr/gcr-pkcs11-importer.c
+++ b/gcr/gcr-pkcs11-importer.c
@@ -43,7 +43,6 @@ enum {
PROP_LABEL,
PROP_INTERACTION,
PROP_SLOT,
- PROP_IMPORTED,
PROP_QUEUED,
PROP_URI
};
@@ -544,8 +543,7 @@ _gcr_pkcs11_importer_dispose (GObject *obj)
{
GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (obj);
- gck_list_unref_free (self->objects);
- self->objects = NULL;
+ g_clear_list (&self->objects, g_object_unref);
g_clear_object (&self->session);
g_clear_object (&self->interaction);
@@ -633,9 +631,6 @@ _gcr_pkcs11_importer_get_property (GObject *obj,
case PROP_SLOT:
g_value_set_object (value, _gcr_pkcs11_importer_get_slot (self));
break;
- case PROP_IMPORTED:
- g_value_take_boxed (value, _gcr_pkcs11_importer_get_imported (self));
- break;
case PROP_QUEUED:
g_value_set_pointer (value, _gcr_pkcs11_importer_get_queued (self));
break;
@@ -671,11 +666,6 @@ _gcr_pkcs11_importer_class_init (GcrPkcs11ImporterClass *klass)
GCK_TYPE_SLOT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (gobject_class, PROP_IMPORTED,
- g_param_spec_boxed ("imported", "Imported", "Imported objects",
- GCK_TYPE_LIST,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
g_object_class_install_property (gobject_class, PROP_QUEUED,
g_param_spec_pointer ("queued", "Queued", "Queued attributes",
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
@@ -698,7 +688,7 @@ list_all_slots (void)
modules = gcr_pkcs11_get_modules ();
results = gck_modules_get_slots (modules, TRUE);
- gck_list_unref_free (modules);
+ g_clear_list (&modules, g_object_unref);
return results;
}
@@ -776,7 +766,7 @@ _gcr_pkcs11_importer_create_for_parsed (GcrParsed *parsed)
gck_token_info_free (token_info);
}
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
return g_list_reverse (results);
}
@@ -863,13 +853,6 @@ _gcr_pkcs11_importer_get_slot (GcrPkcs11Importer *self)
}
GList *
-_gcr_pkcs11_importer_get_imported (GcrPkcs11Importer *self)
-{
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORTER (self), NULL);
- return g_list_copy (self->objects);
-}
-
-GList *
_gcr_pkcs11_importer_get_queued (GcrPkcs11Importer *self)
{
g_return_val_if_fail (GCR_IS_PKCS11_IMPORTER (self), NULL);
diff --git a/gcr/gcr-subject-public-key.c b/gcr/gcr-subject-public-key.c
index 1a3f383..9ae79f7 100644
--- a/gcr/gcr-subject-public-key.c
+++ b/gcr/gcr-subject-public-key.c
@@ -221,7 +221,7 @@ lookup_public_key (GckObject *object,
return NULL;
result = g_object_ref (objects->data);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
return result;
}
diff --git a/gcr/gcr-trust.c b/gcr/gcr-trust.c
index 9fae5b5..d5c8ec5 100644
--- a/gcr/gcr-trust.c
+++ b/gcr/gcr-trust.c
@@ -112,7 +112,7 @@ perform_is_certificate_pinned (GckAttributes *search,
g_debug ("searching for pinned certificate in %d slots",
g_list_length (slots));
en = gck_slots_enumerate_objects (slots, search, 0);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
object = gck_enumerator_next (en, cancellable, error);
g_object_unref (en);
@@ -277,7 +277,7 @@ perform_add_pinned_certificate (GckAttributes *search,
slots = gcr_pkcs11_get_trust_lookup_slots ();
en = gck_slots_enumerate_objects (slots, search, CKF_RW_SESSION);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
object = gck_enumerator_next (en, cancellable, &lerr);
g_object_unref (en);
@@ -481,7 +481,7 @@ perform_remove_pinned_certificate (GckAttributes *attrs,
slots = gcr_pkcs11_get_trust_lookup_slots ();
en = gck_slots_enumerate_objects (slots, attrs, CKF_RW_SESSION);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
/* We need an error below */
if (error && !*error)
@@ -502,12 +502,12 @@ perform_remove_pinned_certificate (GckAttributes *attrs,
continue;
}
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
return FALSE;
}
}
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
return TRUE;
}
@@ -659,7 +659,7 @@ perform_is_certificate_anchored (GckAttributes *attrs,
g_debug ("searching for certificate anchor in %d slots",
g_list_length (slots));
en = gck_slots_enumerate_objects (slots, attrs, 0);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
object = gck_enumerator_next (en, cancellable, error);
g_object_unref (en);
@@ -820,7 +820,7 @@ perform_is_certificate_distrusted (GckAttributes *attrs,
g_debug ("searching for certificate distrust assertion in %d slots",
g_list_length (slots));
en = gck_slots_enumerate_objects (slots, attrs, 0);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
object = gck_enumerator_next (en, cancellable, error);
g_object_unref (en);
diff --git a/gcr/test-certificate-chain.c b/gcr/test-certificate-chain.c
index 1b5ebf0..e3ddb9e 100644
--- a/gcr/test-certificate-chain.c
+++ b/gcr/test-certificate-chain.c
@@ -161,7 +161,7 @@ setup (Test *test, gconstpointer unused)
uris[1] = NULL;
gcr_pkcs11_set_trust_lookup_uris (uris);
gcr_pkcs11_set_trust_store_uri (GCK_MOCK_SLOT_ONE_URI);
- gck_list_unref_free (modules);
+ g_clear_list (&modules, g_object_unref);
/* A self-signed certificate */
if (!g_file_get_contents (SRCDIR "/gcr/fixtures/der-certificate.crt", &contents, &n_contents, NULL))
diff --git a/gcr/test-pkcs11-certificate.c b/gcr/test-pkcs11-certificate.c
index 1b11b7a..fab1b45 100644
--- a/gcr/test-pkcs11-certificate.c
+++ b/gcr/test-pkcs11-certificate.c
@@ -79,7 +79,7 @@ setup (Test *test, gconstpointer unused)
module = gck_module_new (&test->funcs);
modules = g_list_prepend (modules, module);
gcr_pkcs11_set_modules (modules);
- gck_list_unref_free (modules);
+ g_clear_list (&modules, g_object_unref);
bytes = g_bytes_new_static (test->cert_data, test->n_cert_data);
asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate", bytes);
diff --git a/gcr/test-trust.c b/gcr/test-trust.c
index 4646612..b002149 100644
--- a/gcr/test-trust.c
+++ b/gcr/test-trust.c
@@ -71,7 +71,7 @@ setup (Test *test, gconstpointer unused)
module = gck_module_new (&test->funcs);
modules = g_list_prepend (modules, module);
gcr_pkcs11_set_modules (modules);
- gck_list_unref_free (modules);
+ g_clear_list (&modules, g_object_unref);
uris[0] = GCK_MOCK_SLOT_ONE_URI;
uris[1] = NULL;