From 4669a053d7bf4f6463eb98bef2d92d8bb5cfb240 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 9 Dec 2005 16:05:55 +0000 Subject: [PATCH] Unref the buffer when freeing the RequestData. (#323577) 2005-12-09 Matthias Clasen * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer when freeing the RequestData. (#323577) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ gtk/gtktextbuffer.c | 16 +++++++++++----- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index a5fca0d8c3..8af06d72a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-12-09 Matthias Clasen + + * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer + when freeing the RequestData. (#323577) + 2005-12-07 Matthias Clasen * demos/gtk-demo/iconview_edit.c (set_cell_color): Don't diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index a5fca0d8c3..8af06d72a3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2005-12-09 Matthias Clasen + + * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer + when freeing the RequestData. (#323577) + 2005-12-07 Matthias Clasen * demos/gtk-demo/iconview_edit.c (set_cell_color): Don't diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index 6dd858d4f3..e797aeace3 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -2993,6 +2993,13 @@ post_paste_cleanup (ClipboardRequest *request_data) } } +static void +free_clipboard_request (ClipBoardRequest *request_data) +{ + g_object_unref (request_data->buffer); + g_free (request_data); +} + /* Called when we request a paste and receive the text data */ static void @@ -3025,8 +3032,7 @@ clipboard_text_received (GtkClipboard *clipboard, gtk_text_buffer_end_user_action (buffer); } - g_object_unref (buffer); - g_free (request_data); + free_clipboard_request (request_data); } static GtkTextBuffer* @@ -3128,7 +3134,8 @@ paste_from_buffer (ClipboardRequest *request_data, gtk_text_buffer_end_user_action (buffer); g_object_unref (src_buffer); - g_free (request_data); + + free_clipboard_request (request_data); } static void @@ -3349,8 +3356,7 @@ gtk_text_buffer_paste_clipboard (GtkTextBuffer *buffer, "gtk_paste_point_override", override_location, FALSE); - data->buffer = buffer; - g_object_ref (buffer); + data->buffer = g_object_ref (buffer); data->interactive = TRUE; data->default_editable = default_editable;