summaryrefslogtreecommitdiff
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
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).
-rw-r--r--gck/gck-enumerator.c18
-rw-r--r--gck/gck-misc.c52
-rw-r--r--gck/gck-module.c2
-rw-r--r--gck/gck-modules.c18
-rw-r--r--gck/gck-object.c3
-rw-r--r--gck/gck.h8
-rw-r--r--gck/test-gck-crypto.c6
-rw-r--r--gck/test-gck-enumerator.c20
-rw-r--r--gck/test-gck-modules.c11
-rw-r--r--gck/test-gck-object.c8
-rw-r--r--gck/test-gck-session.c2
-rw-r--r--gck/test-gck-slot.c8
-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
-rw-r--r--meson.build2
23 files changed, 68 insertions, 160 deletions
diff --git a/gck/gck-enumerator.c b/gck/gck-enumerator.c
index 97599ce..7a72663 100644
--- a/gck/gck-enumerator.c
+++ b/gck/gck-enumerator.c
@@ -188,9 +188,7 @@ cleanup_state (GckEnumeratorState *args)
args->results = NULL;
}
- gck_list_unref_free (args->modules);
- args->modules = NULL;
-
+ g_clear_list (&args->modules, g_object_unref);
g_clear_object (&args->interaction);
if (args->object_class)
@@ -306,9 +304,7 @@ state_slots (GckEnumeratorState *args, gboolean forward)
/* slots state to modules state */
} else {
-
- gck_list_unref_free (args->slots);
- args->slots = NULL;
+ g_clear_list (&args->slots, g_object_unref);
return state_modules;
}
}
@@ -698,7 +694,7 @@ _gck_enumerator_new_for_modules (GList *modules,
state->session_options = session_options;
- state->modules = gck_list_ref_copy (modules);
+ state->modules = g_list_copy_deep (modules, (GCopyFunc) g_object_ref, NULL);
state->slots = NULL;
state->handler = state_modules;
state->match = uri_data;
@@ -720,7 +716,7 @@ _gck_enumerator_new_for_slots (GList *slots,
state->session_options = session_options;
- state->slots = gck_list_ref_copy (slots);
+ state->slots = g_list_copy_deep (slots, (GCopyFunc) g_object_ref, NULL);
state->modules = NULL;
state->handler = state_slots;
state->match = uri_data;
@@ -1214,8 +1210,7 @@ gck_enumerator_next (GckEnumerator *self,
* %NULL is also returned if the function fails. Use the @error to determine
* whether a failure occurred or not.
*
- * Returns: (transfer full) (element-type Gck.Object): A list of objects, which
- * should be freed using gck_list_unref_free().
+ * Returns: (transfer full) (element-type Gck.Object): A list of `Gck.Object`s
*/
GList *
gck_enumerator_next_n (GckEnumerator *self,
@@ -1309,8 +1304,7 @@ gck_enumerator_next_async (GckEnumerator *self, gint max_objects, GCancellable *
* %NULL is also returned if the function fails. Use the @error to determine
* whether a failure occurred or not.
*
- * Returns: (element-type Gck.Object) (transfer full): The list of objects, which
- * should be freed with gck_list_unref_free()
+ * Returns: (transfer full) (element-type Gck.Object): A list of `Gck.Object`s
*/
GList*
gck_enumerator_next_finish (GckEnumerator *self, GAsyncResult *result, GError **error)
diff --git a/gck/gck-misc.c b/gck/gck-misc.c
index ef8a19b..132dd7f 100644
--- a/gck/gck-misc.c
+++ b/gck/gck-misc.c
@@ -241,58 +241,6 @@ _gck_rv_from_error (GError *error,
return catch_all_code;
}
-GType
-gck_list_get_boxed_type (void)
-{
- static GType type = 0;
- if (!type)
- type = g_boxed_type_register_static ("GckList",
- (GBoxedCopyFunc)gck_list_ref_copy,
- (GBoxedFreeFunc)gck_list_unref_free);
- return type;
-
-}
-
-/**
- * gck_list_unref_free: (skip)
- * @reflist: (element-type GObject.Object): list of Gobject reference counted pointers
- *
- * Free a list of GObject based pointers. All objects in the list
- * will be unreffed and then the list itself will be freed.
- **/
-void
-gck_list_unref_free (GList *reflist)
-{
- GList *l;
- for (l = reflist; l; l = g_list_next (l)) {
- g_return_if_fail (G_IS_OBJECT (l->data));
- g_object_unref (l->data);
- }
- g_list_free (reflist);
-}
-
-/**
- * gck_list_ref_copy: (skip)
- * @reflist: (element-type GObject.Object): list of GObject reference counted
- * objects
- *
- * Copy a list of GObject based pointers. All objects
- * in the list will be reffed and the list will be copied.
- *
- * Return value: (transfer full) (element-type GObject.Object): the copied and
- * reffed list, when done, free it with gck_list_unref_free ()
- **/
-GList *
-gck_list_ref_copy (GList *reflist)
-{
- GList *l, *copy = g_list_copy (reflist);
- for (l = copy; l; l = g_list_next (l)) {
- g_return_val_if_fail (G_IS_OBJECT (l->data), NULL);
- g_object_ref (l->data);
- }
- return copy;
-}
-
/**
* gck_string_from_chars: (skip)
* @data: The character data to turn into a null terminated string.
diff --git a/gck/gck-module.c b/gck/gck-module.c
index 6f85f33..4129db3 100644
--- a/gck/gck-module.c
+++ b/gck/gck-module.c
@@ -549,7 +549,7 @@ gck_module_get_info (GckModule *self)
* Get the GckSlot objects for a given module.
*
* Return value: (element-type Gck.Slot) (transfer full): The possibly empty
- * list of slots. Release this with gck_list_unref_free().
+ * list of slots.
*/
GList*
gck_module_get_slots (GckModule *self, gboolean token_present)
diff --git a/gck/gck-modules.c b/gck/gck-modules.c
index 71a6ed9..19b957a 100644
--- a/gck/gck-modules.c
+++ b/gck/gck-modules.c
@@ -74,7 +74,7 @@ static void
free_initialize_registered (InitializeRegistered *args)
{
g_clear_error (&args->error);
- gck_list_unref_free (args->results);
+ g_clear_list (&args->results, g_object_unref);
g_free (args);
}
@@ -86,7 +86,7 @@ free_initialize_registered (InitializeRegistered *args)
* Load and initialize all the registered modules.
*
* Returns: (transfer full) (element-type Gck.Module): A newly allocated list
- * of #GckModule objects, which should be released with gck_list_unref_free().
+ * of #GckModule objects.
*/
GList*
gck_modules_initialize_registered (GCancellable *cancellable,
@@ -170,7 +170,7 @@ gck_modules_initialize_registered_finish (GAsyncResult *result,
* Get a list of slots for across all of the modules.
*
* Returns: (transfer full) (element-type Gck.Slot): A list of #GckSlot
- * objects, which should be freed with gck_list_unref_free().
+ * objects.
*/
GList*
gck_modules_get_slots (GList *modules, gboolean token_present)
@@ -258,7 +258,7 @@ tokens_for_uri (GList *modules,
gck_token_info_free (token_info);
}
}
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
}
@@ -290,7 +290,7 @@ gck_modules_token_for_uri (GList *modules,
results = tokens_for_uri (modules, uri, TRUE, error);
if (results)
slot = g_object_ref (results->data);
- gck_list_unref_free (results);
+ g_clear_list (&results, g_object_unref);
return slot;
}
@@ -304,8 +304,7 @@ gck_modules_token_for_uri (GList *modules,
* Lookup a token that matches the URI.
*
* Returns: (transfer full) (element-type Gck.Slot): A list of newly allocated
- * #GckSlot objects. Use gck_list_unref_free() to release the list once you're
- * done with it.
+ * #GckSlot objects.
*/
GList *
gck_modules_tokens_for_uri (GList *modules,
@@ -366,9 +365,8 @@ gck_modules_object_for_uri (GList *modules,
* This call can block. Use [func@modules_enumerate_uri] for a non-blocking
* version.
*
- * Returns: (transfer full) (element-type Gck.Object): A list of #GckObject which
- * should be released with gck_list_unref_free(), or %NULL if no matching object
- * was found.
+ * Returns: (transfer full) (element-type Gck.Object): A (possibly empty) list
+ * of `Gck.Object`s.
*/
GList*
gck_modules_objects_for_uri (GList *modules,
diff --git a/gck/gck-object.c b/gck/gck-object.c
index da07bf8..de8bd88 100644
--- a/gck/gck-object.c
+++ b/gck/gck-object.c
@@ -228,8 +228,7 @@ gck_object_from_handle (GckSession *session,
* contiguous CK_OBJECT_HANDLE handles in an array.
*
* Returns: (transfer full) (element-type Gck.Object): The list of #GckObject
- * objects. You should use gck_list_unref_free() when done with this
- * list.
+ * objects.
**/
GList *
gck_objects_from_handle_array (GckSession *session,
diff --git a/gck/gck.h b/gck/gck.h
index 7f51346..de1efec 100644
--- a/gck/gck.h
+++ b/gck/gck.h
@@ -58,14 +58,6 @@ typedef enum {
GQuark gck_error_quark (void) G_GNUC_CONST;
-#define GCK_TYPE_LIST (gck_list_get_boxed_type ())
-
-GType gck_list_get_boxed_type (void) G_GNUC_CONST;
-
-GList* gck_list_ref_copy (GList *reflist);
-
-void gck_list_unref_free (GList *reflist);
-
const gchar* gck_message_from_rv (gulong rv);
gboolean gck_string_to_chars (guchar *data,
diff --git a/gck/test-gck-crypto.c b/gck/test-gck-crypto.c
index 2bc535c..f9651eb 100644
--- a/gck/test-gck-crypto.c
+++ b/gck/test-gck-crypto.c
@@ -84,7 +84,7 @@ setup (Test *test, gconstpointer unused)
g_object_add_weak_pointer (G_OBJECT (test->session_with_auth), (gpointer *)&test->session_with_auth);
g_object_unref (slot);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
static void
@@ -145,7 +145,7 @@ find_key (GckSession *session, CK_ATTRIBUTE_TYPE method, CK_MECHANISM_TYPE mech)
break;
}
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
return object;
}
@@ -164,7 +164,7 @@ find_key_with_value (GckSession *session, const gchar *value)
g_assert_nonnull (objects);
object = g_object_ref (objects->data);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
return object;
}
diff --git a/gck/test-gck-enumerator.c b/gck/test-gck-enumerator.c
index 4776ce5..205b3e3 100644
--- a/gck/test-gck-enumerator.c
+++ b/gck/test-gck-enumerator.c
@@ -59,7 +59,7 @@ setup (Test *test, gconstpointer unused)
static void
teardown (Test *test, gconstpointer unused)
{
- gck_list_unref_free (test->modules);
+ g_clear_list (&test->modules, g_object_unref);
g_object_unref (test->module);
egg_test_wait_for_gtask_thread (test->module);
@@ -95,7 +95,7 @@ test_create_slots (Test *test, gconstpointer unused)
en = _gck_enumerator_new_for_slots (slots, 0, uri_data);
g_assert_true (GCK_IS_ENUMERATOR (en));
g_object_unref (en);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
static void
@@ -136,7 +136,7 @@ test_next_slots (Test *test, gconstpointer unused)
g_object_unref (obj);
g_object_unref (en);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
static void
@@ -184,7 +184,7 @@ test_next_n (Test *test, gconstpointer unused)
for (l = objects; l; l = g_list_next (l))
g_assert_true (GCK_IS_OBJECT (l->data));
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (en);
}
@@ -220,7 +220,7 @@ test_next_async (Test *test, gconstpointer unused)
g_assert_true (GCK_IS_OBJECT (l->data));
g_object_unref (result);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (en);
}
@@ -255,7 +255,7 @@ test_enumerate_session (Test *test,
g_object_unref (obj);
g_object_unref (en);
g_object_unref (session);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
static void
@@ -278,7 +278,7 @@ test_attribute_match (Test *test, gconstpointer unused)
g_assert_cmpint (g_list_length (objects), ==, 1);
g_assert_true (GCK_IS_OBJECT (objects->data));
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (en);
}
@@ -338,7 +338,7 @@ test_token_match (Test *test, gconstpointer unused)
g_assert_cmpint (g_list_length (objects), ==, 0);
g_assert_no_error (error);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (en);
}
@@ -484,7 +484,7 @@ test_attribute_get (Test *test,
g_assert_nonnull (mock->attrs);
}
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (en);
}
@@ -553,7 +553,7 @@ test_chained (Test *test,
g_assert_no_error (error);
g_assert_cmpint (g_list_length (objects), ==, 5);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (one);
}
diff --git a/gck/test-gck-modules.c b/gck/test-gck-modules.c
index 96928da..92c3928 100644
--- a/gck/test-gck-modules.c
+++ b/gck/test-gck-modules.c
@@ -57,8 +57,7 @@ setup (Test *test, gconstpointer unused)
static void
teardown (Test *test, gconstpointer unused)
{
- gck_list_unref_free (test->modules);
- test->modules = NULL;
+ g_clear_list (&test->modules, g_object_unref);
}
static void
@@ -81,7 +80,7 @@ test_enumerate_objects (Test *test, gconstpointer unused)
g_assert_cmpint (g_list_length (objects), ==, 1);
g_assert_true (GCK_IS_OBJECT (objects->data));
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
g_object_unref (en);
}
@@ -166,7 +165,7 @@ test_objects_for_uri (Test *test, gconstpointer unused)
g_assert_no_error (error);
g_assert_cmpint (g_list_length (objects), ==, 5);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
}
static void
@@ -184,8 +183,8 @@ test_enumerate_uri (Test *test, gconstpointer unused)
g_assert_cmpint (g_list_length (objects), ==, 5);
g_assert_no_error (error);
- g_object_unref (en);
- gck_list_unref_free (objects);
+ g_clear_object (&en);
+ g_clear_list (&objects, g_object_unref);
}
int
diff --git a/gck/test-gck-object.c b/gck/test-gck-object.c
index d75f970..7b23f12 100644
--- a/gck/test-gck-object.c
+++ b/gck/test-gck-object.c
@@ -58,7 +58,7 @@ setup (Test *test, gconstpointer unused)
test->slot = GCK_SLOT (slots->data);
g_object_ref (test->slot);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
test->session = gck_slot_open_session (test->slot, 0, NULL, NULL, &err);
g_assert_no_error (err);
@@ -385,7 +385,7 @@ test_find_objects (Test *test, gconstpointer unused)
gck_attributes_unref (attributes);
g_assert_no_error (err);
g_assert_cmpuint (g_list_length (objects), ==, 1);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
/* Full, All */
attributes = gck_builder_end (&builder);
@@ -393,7 +393,7 @@ test_find_objects (Test *test, gconstpointer unused)
gck_attributes_unref (attributes);
g_assert_no_error (err);
g_assert_cmpuint (g_list_length (objects), >, 1);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
/* Async, None */
gck_builder_add_string (&builder, CKA_LABEL, "blah blah");
@@ -406,7 +406,7 @@ test_find_objects (Test *test, gconstpointer unused)
objects = gck_session_find_objects_finish (test->session, result, &err);
g_object_unref (result);
g_assert_null (objects);
- gck_list_unref_free (objects);
+ g_clear_list (&objects, g_object_unref);
}
int
diff --git a/gck/test-gck-session.c b/gck/test-gck-session.c
index 055a92d..862a926 100644
--- a/gck/test-gck-session.c
+++ b/gck/test-gck-session.c
@@ -58,7 +58,7 @@ setup (Test *test, gconstpointer unused)
test->slot = GCK_SLOT (slots->data);
g_object_ref (test->slot);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
g_object_add_weak_pointer (G_OBJECT (test->slot), (gpointer *)&test->slot);
test->session = gck_slot_open_session (test->slot, 0, NULL, NULL, &err);
diff --git a/gck/test-gck-slot.c b/gck/test-gck-slot.c
index d03f319..e9260df 100644
--- a/gck/test-gck-slot.c
+++ b/gck/test-gck-slot.c
@@ -53,7 +53,7 @@ setup (Test *test, gconstpointer unused)
test->slot = GCK_SLOT (slots->data);
g_object_ref (test->slot);
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
@@ -69,7 +69,7 @@ test_slot_info (Test *test, gconstpointer unused)
{
GckSlotInfo *info;
GckTokenInfo *token;
- GList *slots, *l;
+ GList *slots;
slots = gck_module_get_slots (test->module, FALSE);
g_assert_cmpint (2, ==, g_list_length (slots));
@@ -79,7 +79,7 @@ test_slot_info (Test *test, gconstpointer unused)
g_assert_true (GCK_IS_SLOT (slots->next->data));
g_assert_null (slots->next->next);
- for (l = slots; l; l = g_list_next (l)) {
+ for (GList *l = slots; l; l = g_list_next (l)) {
info = gck_slot_get_info (GCK_SLOT (l->data));
g_assert_nonnull (info);
@@ -121,7 +121,7 @@ test_slot_info (Test *test, gconstpointer unused)
gck_slot_info_free (info);
}
- gck_list_unref_free (slots);
+ g_clear_list (&slots, g_object_unref);
}
static void
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;
diff --git a/meson.build b/meson.build
index 4c2a728..1c6db2a 100644
--- a/meson.build
+++ b/meson.build
@@ -41,7 +41,7 @@ gcr_gtk3_basename = 'gcr-@0@-gtk3'.format(gcr_api_version)
gcr_gtk4_basename = 'gcr-@0@-gtk4'.format(gcr_api_version)
# Dependencies
-min_glib_version = '2.44'
+min_glib_version = '2.64'
glib_dep = dependency('glib-2.0', version: '>=' + min_glib_version)
gmodule_dep = dependency('gmodule-no-export-2.0', version: '>=' + min_glib_version)
gthread_dep = dependency('gthread-2.0', version: '>=' + min_glib_version)