From f411b93ca3bdef184e4453cab587a31adc44fa09 Mon Sep 17 00:00:00 2001 From: Richard Hult Date: Mon, 3 Dec 2007 19:51:20 +0000 Subject: [PATCH] Don't crash when dragging from a source that doesn't support uri lists 2007-12-03 Richard Hult * gtk/gtkquartz.c: (_gtk_quartz_set_selection_data_for_pasteboard): Don't crash when dragging from a source that doesn't support uri lists (bug #499868, Paul Davis). svn path=/trunk/; revision=19102 --- ChangeLog | 6 ++++++ gtk/gtkquartz.c | 16 ++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 50b34ad4d0..4869c0d288 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-12-03 Richard Hult + + * gtk/gtkquartz.c: (_gtk_quartz_set_selection_data_for_pasteboard): + Don't crash when dragging from a source that doesn't support uri + lists (bug #499868, Paul Davis). + 2007-12-03 Richard Hult * gdk/quartz/gdkwindow-quartz.c: diff --git a/gtk/gtkquartz.c b/gtk/gtkquartz.c index 273666d5fa..0973607fe8 100644 --- a/gtk/gtkquartz.c +++ b/gtk/gtkquartz.c @@ -220,7 +220,7 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard, NSURL *url = [NSURL URLFromPasteboard:pasteboard]; selection_data->target = gdk_atom_intern_static_string ("text/uri-list"); - + uris[0] = (gchar *) [[url description] UTF8String]; uris[1] = NULL; gtk_selection_data_set_uris (selection_data, uris); @@ -295,14 +295,16 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard, &list); if (count > 0) - result = g_uri_list_extract_uris (list[0]); - g_strfreev (list); + { + result = g_uri_list_extract_uris (list[0]); - url = [NSURL URLWithString:[NSString stringWithUTF8String:result[0]]]; - [url writeToPasteboard:pasteboard]; + url = [NSURL URLWithString:[NSString stringWithUTF8String:result[0]]]; + [url writeToPasteboard:pasteboard]; - g_strfreev (result); + g_strfreev (result); + } + g_strfreev (list); } else [pasteboard setData:[NSData dataWithBytesNoCopy:selection_data->data @@ -310,5 +312,3 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard, freeWhenDone:NO] forType:type]; } - - -- GitLab