[gtk+/gtk-2-24] quartz: really don't call a NULL function in gtk_clipboard_store()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] quartz: really don't call a NULL function in gtk_clipboard_store()
- Date: Tue, 15 Jan 2013 11:01:19 +0000 (UTC)
commit bc3f1893aa26761c0009ddc993b48623bcfbe4ed
Author: Michael Natterer <mitch lanedo com>
Date: Tue Jan 15 11:48:23 2013 +0100
quartz: really don't call a NULL function in gtk_clipboard_store()
Need to check targets and get_func in each loop iteration because
calling get_func the fist time might do whatever to the clipboard.
Re-fixes bug #626499. Also free the target table after we're done.
gtk/gtkclipboard-quartz.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkclipboard-quartz.c b/gtk/gtkclipboard-quartz.c
index 0cf5356..cd6f878 100644
--- a/gtk/gtkclipboard-quartz.c
+++ b/gtk/gtkclipboard-quartz.c
@@ -1063,6 +1063,13 @@ gtk_clipboard_store (GtkClipboard *clipboard)
{
GtkSelectionData selection_data;
+ /* in each loop iteration, check if the content is still
+ * there, because calling get_func() can do anything to
+ * the clipboard
+ */
+ if (!clipboard->target_list || !clipboard->get_func)
+ break;
+
memset (&selection_data, 0, sizeof (GtkSelectionData));
selection_data.selection = clipboard->selection;
@@ -1079,6 +1086,9 @@ gtk_clipboard_store (GtkClipboard *clipboard)
g_free (selection_data.data);
}
+
+ if (targets)
+ gtk_target_table_free (targets, n_targets);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]