[gcr/nielsdg/drop-gck-list] Drop Gck list API




commit 683c081a3ecfebc4e1ed356c81d67a5bc878c778
Author: Niels De Graef <nielsdegraef gmail com>
Date:   Sun Jul 17 21:09:55 2022 +0200

    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).

 gck/gck-enumerator.c           | 18 +++++----------
 gck/gck-misc.c                 | 52 ------------------------------------------
 gck/gck-module.c               |  2 +-
 gck/gck-modules.c              | 18 +++++++--------
 gck/gck-object.c               |  3 +--
 gck/gck.h                      |  8 -------
 gck/test-gck-crypto.c          |  6 ++---
 gck/test-gck-enumerator.c      | 20 ++++++++--------
 gck/test-gck-modules.c         | 11 ++++-----
 gck/test-gck-object.c          |  8 +++----
 gck/test-gck-session.c         |  2 +-
 gck/test-gck-slot.c            |  8 +++----
 gcr/frob-certificate-request.c |  2 +-
 gcr/gcr-importer.c             |  2 +-
 gcr/gcr-library.c              | 19 ++++++---------
 gcr/gcr-pkcs11-certificate.c   |  2 +-
 gcr/gcr-pkcs11-importer.c      | 23 +++----------------
 gcr/gcr-subject-public-key.c   |  2 +-
 gcr/gcr-trust.c                | 14 ++++++------
 gcr/test-certificate-chain.c   |  2 +-
 gcr/test-pkcs11-certificate.c  |  2 +-
 gcr/test-trust.c               |  2 +-
 meson.build                    |  2 +-
 23 files changed, 68 insertions(+), 160 deletions(-)
---
diff --git a/gck/gck-enumerator.c b/gck/gck-enumerator.c
index 97599ce2..7a726635 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 ef8a19b7..132dd7f1 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 6f85f331..4129db3d 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 71a6ed9e..19b957a4 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 da07bf8a..de8bd88e 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 7f51346e..de1efecf 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 2bc535ca..f9651eb5 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 4776ce58..205b3e3b 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 96928dab..92c39284 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 d75f9707..7b23f123 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 055a92d6..862a926d 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 d03f3191..e9260df7 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 459f391e..ae5b9043 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 4cacece9..f731ffa5 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 efc4b4a4..15c486d5 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 8c19dca3..f5f798b4 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 e65e95f4..7844af51 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);
 }
@@ -862,13 +852,6 @@ _gcr_pkcs11_importer_get_slot (GcrPkcs11Importer *self)
        return self->slot;
 }
 
-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)
 {
diff --git a/gcr/gcr-subject-public-key.c b/gcr/gcr-subject-public-key.c
index 1a3f3836..9ae79f71 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 9fae5b5f..d5c8ec5a 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 1b5ebf0d..e3ddb9e8 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 1b11b7a4..fab1b453 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 46466122..b0021492 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 4c2a728b..1c6db2aa 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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]