commit e249e4e634479290b20bed4a95f17446ea2737c3
parent 63a308fddb8a669ba0c1cb04c287aeb697bcb9ba
Author: Jacki <jacki@thejackimonster.de>
Date: Wed, 14 Feb 2024 01:40:26 +0100
Fix memory leaks from text buffer
Signed-off-by: Jacki <jacki@thejackimonster.de>
Diffstat:
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/src/ui/chat.c b/src/ui/chat.c
@@ -456,7 +456,7 @@ _update_send_record_symbol(GtkTextBuffer *buffer,
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_end_iter(buffer, &end);
- const gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
+ gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
gtk_image_set_from_icon_name(
symbol,
@@ -465,6 +465,8 @@ _update_send_record_symbol(GtkTextBuffer *buffer,
"audio-input-microphone-symbolic",
GTK_ICON_SIZE_BUTTON
);
+
+ g_free(text);
}
static void
@@ -492,10 +494,13 @@ _send_text_from_view(MESSENGER_Application *app,
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_end_iter(buffer, &end);
- const gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
+ gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
if (0 == strlen(text))
+ {
+ g_free(text);
return FALSE;
+ }
if (action_time >= UI_CHAT_SEND_BUTTON_HOLD_INTERVAL)
{
@@ -510,6 +515,7 @@ _send_text_from_view(MESSENGER_Application *app,
if (context)
GNUNET_CHAT_context_send_text(context, text);
+ g_free(text);
gtk_text_buffer_delete(buffer, &start, &end);
return TRUE;
}
@@ -677,9 +683,12 @@ handle_send_record_button_pressed(GtkWidget *widget,
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_end_iter(buffer, &end);
- const gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
+ gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
+ const size_t text_len = strlen(text);
- if (0 < strlen(text))
+ g_free(text);
+
+ if (0 < text_len)
return FALSE;
if ((handle->recorded) || (!(handle->record_pipeline)) ||
@@ -756,9 +765,12 @@ handle_send_record_button_released(GtkWidget *widget,
gtk_text_buffer_get_start_iter(buffer, &start);
gtk_text_buffer_get_end_iter(buffer, &end);
- const gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
+ gchar *text = gtk_text_buffer_get_text(buffer, &start, &end, TRUE);
+ const size_t text_len = strlen(text);
+
+ g_free(text);
- if (0 < strlen(text))
+ if (0 < text_len)
return FALSE;
if ((handle->recorded) || (!(handle->record_pipeline)) ||