diff options
Diffstat (limited to 'thunar')
-rw-r--r-- | thunar/thunar-application.c | 6 | ||||
-rw-r--r-- | thunar/thunar-chooser-model.c | 7 | ||||
-rw-r--r-- | thunar/thunar-dbus-service.c | 3 | ||||
-rw-r--r-- | thunar/thunar-file.c | 6 | ||||
-rw-r--r-- | thunar/thunar-list-model.c | 9 | ||||
-rw-r--r-- | thunar/thunar-permissions-chooser.c | 3 | ||||
-rw-r--r-- | thunar/thunar-properties-dialog.c | 3 | ||||
-rw-r--r-- | thunar/thunar-renamer-dialog.c | 6 | ||||
-rw-r--r-- | thunar/thunar-renamer-model.c | 9 | ||||
-rw-r--r-- | thunar/thunar-renamer-pair.c | 8 | ||||
-rw-r--r-- | thunar/thunar-renamer-pair.h | 2 | ||||
-rw-r--r-- | thunar/thunar-sendto-model.c | 9 | ||||
-rw-r--r-- | thunar/thunar-shortcuts-model.c | 3 | ||||
-rw-r--r-- | thunar/thunar-standard-view.c | 21 | ||||
-rw-r--r-- | thunar/thunar-templates-action.c | 3 | ||||
-rw-r--r-- | thunar/thunar-thumbnail-cache.c | 23 | ||||
-rw-r--r-- | thunar/thunar-transfer-job.c | 8 | ||||
-rw-r--r-- | thunar/thunar-tree-model.c | 6 | ||||
-rw-r--r-- | thunar/thunar-user.c | 6 | ||||
-rw-r--r-- | thunar/thunar-window.c | 3 |
20 files changed, 52 insertions, 92 deletions
diff --git a/thunar/thunar-application.c b/thunar/thunar-application.c index 31ad89ec..b619bbec 100644 --- a/thunar/thunar-application.c +++ b/thunar/thunar-application.c @@ -268,8 +268,7 @@ thunar_application_finalize (GObject *object) g_source_remove (application->volman_idle_id); /* drop all pending volume manager UDIs */ - g_slist_foreach (application->volman_udis, (GFunc) g_free, NULL); - g_slist_free (application->volman_udis); + g_slist_free_full (application->volman_udis, g_free); /* disconnect from the udev client */ g_object_unref (application->udev_client); @@ -659,8 +658,7 @@ thunar_application_volman_idle (gpointer user_data) else { /* drop all pending HAL device UDIs */ - g_slist_foreach (application->volman_udis, (GFunc) g_free, NULL); - g_slist_free (application->volman_udis); + g_slist_free_full (application->volman_udis, g_free); application->volman_udis = NULL; } diff --git a/thunar/thunar-chooser-model.c b/thunar/thunar-chooser-model.c index ec41b5cb..1fa5b9cc 100644 --- a/thunar/thunar-chooser-model.c +++ b/thunar/thunar-chooser-model.c @@ -311,11 +311,8 @@ thunar_chooser_model_reload (ThunarChooserModel *model) "gnome-applications", other); - g_list_foreach (recommended, (GFunc) g_object_unref, NULL); - g_list_free (recommended); - - g_list_foreach (all, (GFunc) g_object_unref, NULL); - g_list_free (all); + g_list_free_full (recommended, g_object_unref); + g_list_free_full (all, g_object_unref); g_list_free (other); } diff --git a/thunar/thunar-dbus-service.c b/thunar/thunar-dbus-service.c index ae8ad855..6b31a06f 100644 --- a/thunar/thunar-dbus-service.c +++ b/thunar/thunar-dbus-service.c @@ -601,8 +601,7 @@ thunar_dbus_service_execute (ThunarDBusService *dbus_service, g_object_unref (working_dir); /* cleanup */ - g_list_foreach (file_list, (GFunc) g_object_unref, NULL); - g_list_free (file_list); + g_list_free_full (file_list, g_object_unref); g_object_unref (screen); g_object_unref (file); } diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c index 9509600a..bac2ed10 100644 --- a/thunar/thunar-file.c +++ b/thunar/thunar-file.c @@ -3554,8 +3554,7 @@ thunar_file_cached_display_name (const GFile *file) * * The caller is responsible to free the returned list using something like: * <informalexample><programlisting> - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * </programlisting></informalexample> * * Return value: the list of #GAppInfo<!---->s that can be used to open all @@ -3612,8 +3611,7 @@ thunar_file_list_get_applications (GList *file_list) } /* release the list of applications for this file */ - g_list_foreach (list, (GFunc) g_object_unref, NULL); - g_list_free (list); + g_list_free_full (list, g_object_unref); } /* check if the set is still not empty */ diff --git a/thunar/thunar-list-model.c b/thunar/thunar-list-model.c index 018af4e2..940bd999 100644 --- a/thunar/thunar-list-model.c +++ b/thunar/thunar-list-model.c @@ -1876,8 +1876,7 @@ thunar_list_model_set_folder (ThunarListModel *store, g_slist_free (rows); /* remove hidden entries */ - g_slist_foreach (store->hidden, (GFunc) g_object_unref, NULL); - g_slist_free (store->hidden); + g_slist_free_full (store->hidden, g_object_unref); store->hidden = NULL; /* unregister signals and drop the reference */ @@ -2170,8 +2169,7 @@ thunar_list_model_get_num_files (ThunarListModel *store) * * The caller is responsible to free the returned list using: * <informalexample><programlisting> - * g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); - * g_list_free (list); + * g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); * </programlisting></informalexample> * * Return value: the list of #GtkTreePath<!---->s for @files. @@ -2206,8 +2204,7 @@ thunar_list_model_get_paths_for_files (ThunarListModel *store, * * The caller is responsible to free the returned list using: * <informalexample><programlisting> - * g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); - * g_list_free (list); + * g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); * </programlisting></informalexample> * * Return value: the list of #GtkTreePath<!---->s that match @pattern. diff --git a/thunar/thunar-permissions-chooser.c b/thunar/thunar-permissions-chooser.c index 260a4529..542650ce 100644 --- a/thunar/thunar-permissions-chooser.c +++ b/thunar/thunar-permissions-chooser.c @@ -976,8 +976,7 @@ thunar_permissions_chooser_file_changed (ThunarPermissionsChooser *chooser) if (G_LIKELY (group != NULL)) g_object_unref (G_OBJECT (group)); - g_list_foreach (groups, (GFunc) g_object_unref, NULL); - g_list_free (groups); + g_list_free_full (groups, g_object_unref); /* determine the file mode and update the combo boxes */ for (n = 0; n < G_N_ELEMENTS (chooser->access_combos); ++n) diff --git a/thunar/thunar-properties-dialog.c b/thunar/thunar-properties-dialog.c index d4a6e1b5..ef779861 100644 --- a/thunar/thunar-properties-dialog.c +++ b/thunar/thunar-properties-dialog.c @@ -577,8 +577,7 @@ thunar_properties_dialog_finalize (GObject *object) g_object_unref (dialog->thumbnailer); /* release the provider property pages */ - g_list_foreach (dialog->provider_pages, (GFunc) g_object_unref, NULL); - g_list_free (dialog->provider_pages); + g_list_free_full (dialog->provider_pages, g_object_unref); /* drop the reference on the provider factory */ g_object_unref (dialog->provider_factory); diff --git a/thunar/thunar-renamer-dialog.c b/thunar/thunar-renamer-dialog.c index a19639dc..02c78137 100644 --- a/thunar/thunar-renamer-dialog.c +++ b/thunar/thunar-renamer-dialog.c @@ -608,8 +608,7 @@ thunar_renamer_dialog_init (ThunarRenamerDialog *renamer_dialog) } /* release the renamers list */ - g_list_foreach (renamers, (GFunc) g_object_unref, NULL); - g_list_free (renamers); + g_list_free_full (renamers, g_object_unref); } @@ -1518,8 +1517,7 @@ thunar_renamer_dialog_drag_drop (GtkWidget *tree_view, /* perform the move */ thunar_renamer_model_reorder (renamer_dialog->model, rows, position); - g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL); - g_list_free (rows); + g_list_free_full (rows, (GDestroyNotify) gtk_tree_path_free); } /* finish the dnd operation */ diff --git a/thunar/thunar-renamer-model.c b/thunar/thunar-renamer-model.c index 0b1ccfa8..f8a992f4 100644 --- a/thunar/thunar-renamer-model.c +++ b/thunar/thunar-renamer-model.c @@ -119,7 +119,7 @@ static gchar *thunar_renamer_model_process_item (ThunarR static gboolean thunar_renamer_model_update_idle (gpointer user_data); static void thunar_renamer_model_update_idle_destroy (gpointer user_data); static ThunarRenamerModelItem *thunar_renamer_model_item_new (ThunarFile *file) G_GNUC_MALLOC; -static void thunar_renamer_model_item_free (ThunarRenamerModelItem *item); +static void thunar_renamer_model_item_free (gpointer data); static gint thunar_renamer_model_cmp_array (gconstpointer pointer_a, gconstpointer pointer_b, gpointer user_data); @@ -288,8 +288,7 @@ thunar_renamer_model_finalize (GObject *object) thunar_renamer_model_set_renamer (renamer_model, NULL); /* release all items */ - g_list_foreach (renamer_model->items, (GFunc) thunar_renamer_model_item_free, NULL); - g_list_free (renamer_model->items); + g_list_free_full (renamer_model->items, thunar_renamer_model_item_free); /* disconnect from the file monitor */ g_signal_handlers_disconnect_by_func (G_OBJECT (renamer_model->file_monitor), thunar_renamer_model_file_destroyed, renamer_model); @@ -977,8 +976,10 @@ thunar_renamer_model_item_new (ThunarFile *file) static void -thunar_renamer_model_item_free (ThunarRenamerModelItem *item) +thunar_renamer_model_item_free (gpointer data) { + ThunarRenamerModelItem *item = data; + g_object_unref (G_OBJECT (item->file)); g_free (item->name); g_slice_free (ThunarRenamerModelItem, item); diff --git a/thunar/thunar-renamer-pair.c b/thunar/thunar-renamer-pair.c index 544ed28b..8d26d8fe 100644 --- a/thunar/thunar-renamer-pair.c +++ b/thunar/thunar-renamer-pair.c @@ -98,13 +98,14 @@ thunar_renamer_pair_copy (ThunarRenamerPair *renamer_pair) /** * thunar_renamer_pair_free: - * @renamer_pair : a #ThunarRenamerPair. + * @data : a #ThunarRenamerPair. * * Frees the specified @renamer_pair. **/ void -thunar_renamer_pair_free (ThunarRenamerPair *renamer_pair) +thunar_renamer_pair_free (gpointer data) { + ThunarRenamerPair *renamer_pair = data; if (G_LIKELY (renamer_pair != NULL)) { g_object_unref (G_OBJECT (renamer_pair->file)); @@ -150,8 +151,7 @@ thunar_renamer_pair_list_copy (GList *renamer_pair_list) void thunar_renamer_pair_list_free (GList *renamer_pair_list) { - g_list_foreach (renamer_pair_list, (GFunc) thunar_renamer_pair_free, NULL); - g_list_free (renamer_pair_list); + g_list_free_full (renamer_pair_list, thunar_renamer_pair_free); } diff --git a/thunar/thunar-renamer-pair.h b/thunar/thunar-renamer-pair.h index aa930b99..858d5ff2 100644 --- a/thunar/thunar-renamer-pair.h +++ b/thunar/thunar-renamer-pair.h @@ -40,7 +40,7 @@ ThunarRenamerPair *thunar_renamer_pair_new (ThunarFile *file, const gchar *name) G_GNUC_MALLOC; ThunarRenamerPair *thunar_renamer_pair_copy (ThunarRenamerPair *renamer_pair) G_GNUC_MALLOC; -void thunar_renamer_pair_free (ThunarRenamerPair *renamer_pair); +void thunar_renamer_pair_free (gpointer data); GList *thunar_renamer_pair_list_copy (GList *renamer_pair_list) G_GNUC_MALLOC; void thunar_renamer_pair_list_free (GList *renamer_pair_list); diff --git a/thunar/thunar-sendto-model.c b/thunar/thunar-sendto-model.c index ee13a45d..9c6a952a 100644 --- a/thunar/thunar-sendto-model.c +++ b/thunar/thunar-sendto-model.c @@ -93,8 +93,7 @@ thunar_sendto_model_finalize (GObject *object) GList *lp; /* release the handlers */ - g_list_foreach (sendto_model->handlers, (GFunc) g_object_unref, NULL); - g_list_free (sendto_model->handlers); + g_list_free_full (sendto_model->handlers, g_object_unref); /* disconnect all monitors */ for (lp = sendto_model->monitors; lp != NULL; lp = lp->next) @@ -171,8 +170,7 @@ thunar_sendto_model_event (GFileMonitor *monitor, /* release the previously loaded handlers */ if (G_LIKELY (sendto_model->handlers != NULL)) { - g_list_foreach (sendto_model->handlers, (GFunc) g_object_unref, NULL); - g_list_free (sendto_model->handlers); + g_list_free_full (sendto_model->handlers, g_object_unref); sendto_model->handlers = NULL; } @@ -222,8 +220,7 @@ thunar_sendto_model_get_default (void) * The returned list is owned by the caller and must be freed when no * longer needed, using: * <informalexample><programlisting> - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * </programlisting></informalexample> * * Return value: a #GList of supported #GAppInfo<!---->s as diff --git a/thunar/thunar-shortcuts-model.c b/thunar/thunar-shortcuts-model.c index a2f67ebb..39bd6465 100644 --- a/thunar/thunar-shortcuts-model.c +++ b/thunar/thunar-shortcuts-model.c @@ -356,8 +356,7 @@ thunar_shortcuts_model_finalize (GObject *object) g_list_free (model->shortcuts); /* free all hidden volumes */ - g_list_foreach (model->hidden_volumes, (GFunc) g_object_unref, NULL); - g_list_free (model->hidden_volumes); + g_list_free_full (model->hidden_volumes, g_object_unref); /* detach from the file monitor */ if (model->monitor != NULL) diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c index 56e8eab4..50bf0d71 100644 --- a/thunar/thunar-standard-view.c +++ b/thunar/thunar-standard-view.c @@ -1056,8 +1056,7 @@ thunar_standard_view_set_selected_files (ThunarComponent *component, (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->scroll_to_path) (standard_view, first_path, FALSE, 0.0f, 0.0f); /* release the tree paths */ - g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); - g_list_free (paths); + g_list_free_full (paths, (GDestroyNotify) gtk_tree_path_free); } } } @@ -1355,8 +1354,7 @@ thunar_standard_view_get_statusbar_text (ThunarView *view) return _("Loading folder contents..."); standard_view->statusbar_text = thunar_list_model_get_statusbar_text (standard_view->model, items); - g_list_foreach (items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (items); + g_list_free_full (items, (GDestroyNotify) gtk_tree_path_free); } return standard_view->statusbar_text; @@ -1529,8 +1527,7 @@ thunar_standard_view_scroll_to_file (ThunarView *view, } /* cleanup */ - g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); - g_list_free (paths); + g_list_free_full (paths, (GDestroyNotify) gtk_tree_path_free); } } } @@ -3074,8 +3071,7 @@ thunar_standard_view_row_deleted (ThunarListModel *model, /* Do nothing if the deleted row is not selected or there is more than one file selected */ if (G_UNLIKELY (g_list_find_custom (selected_items, path, (GCompareFunc) gtk_tree_path_compare) == NULL || g_list_length (selected_items) != 1)) { - g_list_foreach (selected_items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected_items); + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); return; } @@ -3096,8 +3092,7 @@ thunar_standard_view_row_deleted (ThunarListModel *model, } /* Free path list */ - g_list_foreach (selected_items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected_items); + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); } @@ -3436,8 +3431,7 @@ thunar_standard_view_request_thumbnails (ThunarStandardView *standard_view) &standard_view->priv->thumbnail_request); /* release the file list */ - g_list_foreach (visible_files, (GFunc) g_object_unref, NULL); - g_list_free (visible_files); + g_list_free_full (visible_files, g_object_unref); /* release the start and end path */ gtk_tree_path_free (start_path); @@ -3536,8 +3530,7 @@ thunar_standard_view_context_menu (ThunarStandardView *standard_view, /* merge the custom menu actions for the selected items */ selected_items = (*THUNAR_STANDARD_VIEW_GET_CLASS (standard_view)->get_selected_items) (standard_view); thunar_standard_view_merge_custom_actions (standard_view, selected_items); - g_list_foreach (selected_items, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected_items); + g_list_free_full (selected_items, (GDestroyNotify) gtk_tree_path_free); /* grab an additional reference on the view */ g_object_ref (G_OBJECT (standard_view)); diff --git a/thunar/thunar-templates-action.c b/thunar/thunar-templates-action.c index 2202dc5d..c700d217 100644 --- a/thunar/thunar-templates-action.c +++ b/thunar/thunar-templates-action.c @@ -509,8 +509,7 @@ thunar_templates_action_menu_shown (GtkWidget *menu, /* drop all existing children of the menu first */ children = gtk_container_get_children (GTK_CONTAINER (menu)); - g_list_foreach (children, (GFunc) gtk_widget_destroy, NULL); - g_list_free (children); + g_list_free_full (children, (GDestroyNotify) gtk_widget_destroy); if (G_LIKELY (templates_action->job == NULL)) { diff --git a/thunar/thunar-thumbnail-cache.c b/thunar/thunar-thumbnail-cache.c index 90762b69..b5f541c4 100644 --- a/thunar/thunar-thumbnail-cache.c +++ b/thunar/thunar-thumbnail-cache.c @@ -132,37 +132,28 @@ thunar_thumbnail_cache_finalize (GObject *object) /* drop the move queue idle and all queued files */ if (cache->move_queue_idle_id > 0) g_source_remove (cache->move_queue_idle_id); - g_list_foreach (cache->move_source_queue, (GFunc) g_object_unref, NULL); - g_list_foreach (cache->move_target_queue, (GFunc) g_object_unref, NULL); - g_list_free (cache->move_source_queue); - g_list_free (cache->move_target_queue); + g_list_free_full (cache->move_source_queue, g_object_unref); + g_list_free_full (cache->move_target_queue, g_object_unref); /* drop the copy queue idle and all queued files */ if (cache->copy_queue_idle_id > 0) g_source_remove (cache->copy_queue_idle_id); - g_list_foreach (cache->copy_source_queue, (GFunc) g_object_unref, NULL); - g_list_foreach (cache->copy_target_queue, (GFunc) g_object_unref, NULL); - g_list_free (cache->copy_source_queue); - g_list_free (cache->copy_target_queue); + g_list_free_full (cache->copy_source_queue, g_object_unref); + g_list_free_full (cache->copy_target_queue, g_object_unref); /* drop the delete queue idle and all queued files */ if (cache->delete_queue_idle_id > 0) g_source_remove (cache->delete_queue_idle_id); - g_list_foreach (cache->delete_queue, (GFunc) g_object_unref, NULL); - g_list_free (cache->delete_queue); + g_list_free_full (cache->delete_queue, g_object_unref); /* drop the cleanup queue idle and all queued files */ if (cache->cleanup_queue_idle_id > 0) g_source_remove (cache->cleanup_queue_idle_id); - g_list_foreach (cache->cleanup_queue, (GFunc) g_object_unref, NULL); - g_list_free (cache->cleanup_queue); + g_list_free_full (cache->cleanup_queue, g_object_unref); /* check if we have a valid cache proxy */ if (cache->cache_proxy != NULL) - { - /* release the cache proxy itself */ - g_object_unref (cache->cache_proxy); - } + g_object_unref (cache->cache_proxy); /* release the cache lock */ g_mutex_unlock (cache->lock); diff --git a/thunar/thunar-transfer-job.c b/thunar/thunar-transfer-job.c index 2eeee5d6..53eeeda3 100644 --- a/thunar/thunar-transfer-job.c +++ b/thunar/thunar-transfer-job.c @@ -43,7 +43,7 @@ typedef struct _ThunarTransferNode ThunarTransferNode; static void thunar_transfer_job_finalize (GObject *object); static gboolean thunar_transfer_job_execute (ExoJob *job, GError **error); -static void thunar_transfer_node_free (ThunarTransferNode *node); +static void thunar_transfer_node_free (gpointer data); @@ -114,8 +114,7 @@ thunar_transfer_job_finalize (GObject *object) { ThunarTransferJob *job = THUNAR_TRANSFER_JOB (object); - g_list_foreach (job->source_node_list, (GFunc) thunar_transfer_node_free, NULL); - g_list_free (job->source_node_list); + g_list_free_full (job->source_node_list, thunar_transfer_node_free); thunar_g_file_list_free (job->target_file_list); @@ -858,8 +857,9 @@ thunar_transfer_job_execute (ExoJob *job, static void -thunar_transfer_node_free (ThunarTransferNode *node) +thunar_transfer_node_free (gpointer data) { + ThunarTransferNode *node = data; ThunarTransferNode *next; /* free all nodes in a row */ diff --git a/thunar/thunar-tree-model.c b/thunar/thunar-tree-model.c index 13c21075..6a6ef0b7 100644 --- a/thunar/thunar-tree-model.c +++ b/thunar/thunar-tree-model.c @@ -383,8 +383,7 @@ thunar_tree_model_finalize (GObject *object) g_object_unref (model->file_monitor); /* release all hidden volumes */ - g_list_foreach (model->hidden_volumes, (GFunc) g_object_unref, NULL); - g_list_free (model->hidden_volumes); + g_list_free_full (model->hidden_volumes, g_object_unref); /* release all resources allocated to the model */ g_node_traverse (model->root, G_POST_ORDER, G_TRAVERSE_ALL, -1, thunar_tree_model_node_traverse_free, NULL); @@ -1263,8 +1262,7 @@ thunar_tree_model_item_reset (ThunarTreeModelItem *item) /* free all the invisible children */ if (item->invisible_children != NULL) { - g_slist_foreach (item->invisible_children, (GFunc) g_object_unref, NULL); - g_slist_free (item->invisible_children); + g_slist_free_full (item->invisible_children, g_object_unref); item->invisible_children = NULL; } diff --git a/thunar/thunar-user.c b/thunar/thunar-user.c index 9d317c80..5567845a 100644 --- a/thunar/thunar-user.c +++ b/thunar/thunar-user.c @@ -239,8 +239,7 @@ thunar_user_finalize (GObject *object) ThunarUser *user = THUNAR_USER (object); /* unref the associated groups */ - g_list_foreach (user->groups, (GFunc) g_object_unref, NULL); - g_list_free (user->groups); + g_list_free_full (user->groups, g_object_unref); /* drop the reference on the primary group */ if (G_LIKELY (user->primary_group != NULL)) @@ -737,8 +736,7 @@ thunar_user_manager_get_user_by_id (ThunarUserManager *manager, * * The caller is responsible to free the returned list using: * <informalexample><programlisting> - * g_list_foreach (list, (GFunc) g_object_unref, NULL); - * g_list_free (list); + * g_list_free_full (list, g_object_unref); * </programlisting></informalexample> * * Return value: the list of all groups known to the @manager. diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c index a669cb45..cd2d3550 100644 --- a/thunar/thunar-window.c +++ b/thunar/thunar-window.c @@ -1623,8 +1623,7 @@ thunar_window_action_close_all_windows (GtkAction *action, g_object_unref (G_OBJECT (application)); /* destroy all open windows */ - g_list_foreach (windows, (GFunc) gtk_widget_destroy, NULL); - g_list_free (windows); + g_list_free_full (windows, (GDestroyNotify) gtk_widget_destroy); } |