diff options
author | Matthias Klumpp <matthias@tenstral.net> | 2021-01-12 19:31:38 +0100 |
---|---|---|
committer | Matthias Klumpp <matthias@tenstral.net> | 2021-01-12 19:31:38 +0100 |
commit | 89c9867925f41d20e410bdb5cabb7d757d60de3e (patch) | |
tree | d7ec0234edf501a4ec2485f2cddea3b8484f31df | |
parent | c32e3aa573ad3086b7f3c2d510a5b8e01c6bbc75 (diff) |
Free scheduler array correctly again
Accidentally broken in last commit.
-rw-r--r-- | src/pk-scheduler.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/pk-scheduler.c b/src/pk-scheduler.c index 99a30cbb8..754ce3d1e 100644 --- a/src/pk-scheduler.c +++ b/src/pk-scheduler.c @@ -210,6 +210,12 @@ pk_scheduler_item_free (PkSchedulerItem *item) g_free (item); } +static void +pk_scheduler_item_free_cb (PkSchedulerItem *item, gpointer user_data) +{ + pk_scheduler_item_free (item); +} + static gboolean pk_scheduler_remove_internal (PkScheduler *scheduler, PkSchedulerItem *item) { @@ -1020,7 +1026,7 @@ static void pk_scheduler_init (PkScheduler *scheduler) { scheduler->priv = PK_SCHEDULER_GET_PRIVATE (scheduler); - scheduler->priv->array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_scheduler_item_free); + scheduler->priv->array = g_ptr_array_new (); scheduler->priv->introspection = pk_load_introspection (PK_DBUS_INTERFACE_TRANSACTION ".xml", NULL); scheduler->priv->unwedge_id = g_timeout_add_seconds (PK_TRANSACTION_WEDGE_CHECK, @@ -1042,7 +1048,10 @@ pk_scheduler_finalize (GObject *object) if (scheduler->priv->unwedge_id != 0) g_source_remove (scheduler->priv->unwedge_id); - g_ptr_array_unref (scheduler->priv->array); + g_ptr_array_foreach (scheduler->priv->array, + (GFunc) pk_scheduler_item_free_cb, NULL); + g_ptr_array_free (scheduler->priv->array, TRUE); + g_dbus_node_info_unref (scheduler->priv->introspection); g_key_file_unref (scheduler->priv->conf); if (scheduler->priv->backend != NULL) |