Unref the buffer when freeing the RequestData. (#323577)

2005-12-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer
        when freeing the RequestData.  (#323577)
This commit is contained in:
Matthias Clasen 2005-12-09 16:05:55 +00:00 committed by Matthias Clasen
parent e75323a558
commit 4669a053d7
3 changed files with 21 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2005-12-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer
when freeing the RequestData. (#323577)
2005-12-07 Matthias Clasen <mclasen@redhat.com> 2005-12-07 Matthias Clasen <mclasen@redhat.com>
* demos/gtk-demo/iconview_edit.c (set_cell_color): Don't * demos/gtk-demo/iconview_edit.c (set_cell_color): Don't

View File

@ -1,3 +1,8 @@
2005-12-09 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer
when freeing the RequestData. (#323577)
2005-12-07 Matthias Clasen <mclasen@redhat.com> 2005-12-07 Matthias Clasen <mclasen@redhat.com>
* demos/gtk-demo/iconview_edit.c (set_cell_color): Don't * demos/gtk-demo/iconview_edit.c (set_cell_color): Don't

View File

@ -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 /* Called when we request a paste and receive the text data
*/ */
static void static void
@ -3025,8 +3032,7 @@ clipboard_text_received (GtkClipboard *clipboard,
gtk_text_buffer_end_user_action (buffer); gtk_text_buffer_end_user_action (buffer);
} }
g_object_unref (buffer); free_clipboard_request (request_data);
g_free (request_data);
} }
static GtkTextBuffer* static GtkTextBuffer*
@ -3128,7 +3134,8 @@ paste_from_buffer (ClipboardRequest *request_data,
gtk_text_buffer_end_user_action (buffer); gtk_text_buffer_end_user_action (buffer);
g_object_unref (src_buffer); g_object_unref (src_buffer);
g_free (request_data);
free_clipboard_request (request_data);
} }
static void static void
@ -3349,8 +3356,7 @@ gtk_text_buffer_paste_clipboard (GtkTextBuffer *buffer,
"gtk_paste_point_override", "gtk_paste_point_override",
override_location, FALSE); override_location, FALSE);
data->buffer = buffer; data->buffer = g_object_ref (buffer);
g_object_ref (buffer);
data->interactive = TRUE; data->interactive = TRUE;
data->default_editable = default_editable; data->default_editable = default_editable;