commit d4f49fede08a33dcc8f0ed6d0b0b06c63072b94d
parent 9f5f98ea13aafc08c3444585b788789ade61bb1f
Author: Jacki <jacki@thejackimonster.de>
Date: Sat, 10 Feb 2024 06:52:33 +0100
Fix segfault in deletion dialog
Signed-off-by: Jacki <jacki@thejackimonster.de>
Diffstat:
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/ui/chat.c b/src/ui/chat.c
@@ -376,7 +376,12 @@ handle_chat_selection_delete_button_click(UNUSED GtkButton *button,
GList *selected = gtk_list_box_get_selected_rows(handle->messages_listbox);
if (app->settings.hide_delete_dialog)
+ {
_delete_messages_callback(app, selected, 0);
+
+ if (selected)
+ g_list_free(selected);
+ }
else
{
ui_delete_messages_dialog_init(app, &(app->ui.delete_messages));
@@ -389,9 +394,6 @@ handle_chat_selection_delete_button_click(UNUSED GtkButton *button,
gtk_widget_show(GTK_WIDGET(app->ui.delete_messages.dialog));
}
-
- if (selected)
- g_list_free(selected);
}
static void
diff --git a/src/ui/delete_messages.c b/src/ui/delete_messages.c
@@ -57,9 +57,9 @@ handle_confirm_button_click(UNUSED GtkButton *button,
if (app->ui.delete_messages.callback)
app->ui.delete_messages.callback(
- app,
- app->ui.delete_messages.selected,
- delay
+ app,
+ app->ui.delete_messages.selected,
+ delay
);
gtk_window_close(GTK_WINDOW(app->ui.delete_messages.dialog));
@@ -138,8 +138,8 @@ ui_delete_messages_dialog_init(MESSENGER_Application *app,
void
ui_delete_messages_dialog_link(UI_DELETE_MESSAGES_Handle *handle,
- UI_DELETE_MESSAGES_Callback callback,
- GList *selected)
+ UI_DELETE_MESSAGES_Callback callback,
+ GList *selected)
{
handle->selected = selected;
handle->callback = callback;
@@ -150,5 +150,8 @@ ui_delete_messages_dialog_cleanup(UI_DELETE_MESSAGES_Handle *handle)
{
g_object_unref(handle->builder);
+ if (handle->selected)
+ g_list_free(handle->selected);
+
memset(handle, 0, sizeof(*handle));
}