diff options
Diffstat (limited to 'java/eclipse-devel/files/post-patch-plugins-swt-gtk-swt-FileDialog.java')
-rw-r--r-- | java/eclipse-devel/files/post-patch-plugins-swt-gtk-swt-FileDialog.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/java/eclipse-devel/files/post-patch-plugins-swt-gtk-swt-FileDialog.java b/java/eclipse-devel/files/post-patch-plugins-swt-gtk-swt-FileDialog.java new file mode 100644 index 000000000000..3d3e5bf5d90c --- /dev/null +++ b/java/eclipse-devel/files/post-patch-plugins-swt-gtk-swt-FileDialog.java @@ -0,0 +1,38 @@ +$FreeBSD$ + +--- plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java.orig 2007-09-21 18:58:07.000000000 +0200 ++++ plugins/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java 2008-02-05 20:49:58.000000000 +0100 +@@ -378,29 +378,29 @@ + stringBuffer.append ('.'); + } + byte [] buffer = Converter.wcsToMbcs (null, stringBuffer.toString (), true); ++ byte [] bufspc = new byte[1024]; + /* + * Bug in GTK. GtkFileChooser may crash on GTK versions 2.4.10 to 2.6 + * when setting a file name that is not a true canonical path. + * The fix is to use the canonical path. + */ +- int /*long*/ ptr = OS.realpath (buffer, null); ++ int /*long*/ ptr = OS.realpath (buffer, bufspc); + if (ptr != 0) { + OS.gtk_file_chooser_set_filename (handle, ptr); +- OS.g_free (ptr); + } + } else { + if (fileName.length () > 0) { + if (fileName.charAt (0) == SEPARATOR) { + byte [] buffer = Converter.wcsToMbcs (null, fileName, true); ++ byte [] bufspc = new byte[1024]; + /* + * Bug in GTK. GtkFileChooser may crash on GTK versions 2.4.10 to 2.6 + * when setting a file name that is not a true canonical path. + * The fix is to use the canonical path. + */ +- int /*long*/ ptr = OS.realpath (buffer, null); ++ int /*long*/ ptr = OS.realpath (buffer, bufspc); + if (ptr != 0) { + OS.gtk_file_chooser_set_filename (handle, ptr); +- OS.g_free (ptr); + } + } + } |