diff options
Diffstat (limited to '')
-rw-r--r-- | java/eclipse-devel/files/post-patch-plugins-swt-gtk-library-os.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/java/eclipse-devel/files/post-patch-plugins-swt-gtk-library-os.c b/java/eclipse-devel/files/post-patch-plugins-swt-gtk-library-os.c new file mode 100644 index 000000000000..a9841275e672 --- /dev/null +++ b/java/eclipse-devel/files/post-patch-plugins-swt-gtk-library-os.c @@ -0,0 +1,20 @@ +--- plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c.orig 2007-06-26 04:57:29.000000000 +0900 ++++ plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c 2007-09-16 16:44:43.000000000 +0900 +@@ -17397,11 +17397,16 @@ + jint rc = 0; + OS_NATIVE_ENTER(env, that, realpath_FUNC); + if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail; +- if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail; ++ if (arg1) { ++ if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail; ++ } else ++ lparg1 = malloc(PATH_MAX); + rc = (jint)realpath((const char *)lparg0, (char *)lparg1); + fail: + if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0); + if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0); ++ if (!arg1 && lparg1 && rc == 0) ++ free(lparg1); + OS_NATIVE_EXIT(env, that, realpath_FUNC); + return rc; + } |