diff options
author | Arun Thondapu | 2013-07-30 12:14:54 +0000 |
---|---|---|
committer | Arun Thondapu | 2013-07-30 17:20:40 +0000 |
commit | cf7558133e9e953c3fd81604968f20b582949c42 (patch) | |
tree | ea14778b03f2319d36f3a8ba24c02cff35c4fccb | |
parent | efebdbe09a31719b1891de21e18dce35fbb34134 (diff) | |
download | eclipse.platform.swt-cf7558133e9e953c3fd81604968f20b582949c42.tar.gz eclipse.platform.swt-cf7558133e9e953c3fd81604968f20b582949c42.tar.xz eclipse.platform.swt-cf7558133e9e953c3fd81604968f20b582949c42.zip |
Bug 320487 - Eclipse crashes when listing certain files (e.g. *.fl) in
project explorer
3 files changed, 10 insertions, 10 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c index 00fdab5a7f..379bf159a9 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c @@ -2669,23 +2669,23 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1data_1input_1stream_1new) #ifndef NO__1g_1data_1input_1stream_1read_1line JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1data_1input_1stream_1read_1line) - (JNIEnv *env, jclass that, jintLong arg0, jintArray arg1, jintLong arg2, jintLong arg3) + (JNIEnv *env, jclass that, jintLong arg0, jlongArray arg1, jintLong arg2, jintLong arg3) { - jint *lparg1=NULL; + jlong *lparg1=NULL; jintLong rc = 0; OS_NATIVE_ENTER(env, that, _1g_1data_1input_1stream_1read_1line_FUNC); - if (arg1) if ((lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL)) == NULL) goto fail; + if (arg1) if ((lparg1 = (*env)->GetLongArrayElements(env, arg1, NULL)) == NULL) goto fail; /* rc = (jintLong)g_data_input_stream_read_line(arg0, lparg1, arg2, arg3); */ { OS_LOAD_FUNCTION(fp, g_data_input_stream_read_line) if (fp) { - rc = (jintLong)((jintLong (CALLING_CONVENTION*)(jintLong, jint *, jintLong, jintLong))fp)(arg0, lparg1, arg2, arg3); + rc = (jintLong)((jintLong (CALLING_CONVENTION*)(jintLong, jlong *, jintLong, jintLong))fp)(arg0, lparg1, arg2, arg3); } } fail: - if (arg1 && lparg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0); + if (arg1 && lparg1) (*env)->ReleaseLongArrayElements(env, arg1, lparg1, 0); OS_NATIVE_EXIT(env, that, _1g_1data_1input_1stream_1read_1line_FUNC); return rc; } diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java index 898301c6d2..722ebee19b 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java @@ -2017,8 +2017,8 @@ public static final long /*int*/ g_data_input_stream_new(long /*int*/ input_stre } } /** @method flags=dynamic */ -public static final native long /*int*/ _g_data_input_stream_read_line(long /*int*/ stream, int[] count, long /*int*/ cancellable, long /*int*/ error); -public static final long /*int*/ g_data_input_stream_read_line(long /*int*/ stream, int[] count, long /*int*/ cancellable, long /*int*/ error) { +public static final native long /*int*/ _g_data_input_stream_read_line(long /*int*/ stream, long[] count, long /*int*/ cancellable, long /*int*/ error); +public static final long /*int*/ g_data_input_stream_read_line(long /*int*/ stream, long[] count, long /*int*/ cancellable, long /*int*/ error) { lock.lock(); try { return _g_data_input_stream_read_line(stream, count, cancellable, error); diff --git a/bundles/org.eclipse.swt/Eclipse SWT Program/gtk/org/eclipse/swt/program/Program.java b/bundles/org.eclipse.swt/Eclipse SWT Program/gtk/org/eclipse/swt/program/Program.java index 9d209316ba..ded302c8ba 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Program/gtk/org/eclipse/swt/program/Program.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Program/gtk/org/eclipse/swt/program/Program.java @@ -690,13 +690,13 @@ static Hashtable gio_getMimeInfo() { mimeTable = new Hashtable(); modTime = modTimestamp[0]; long /*int*/ reader = OS.g_data_input_stream_new (fileInputStream); - int[] length = new int[1]; + long[] length = new long[1]; if (reader != 0) { long /*int*/ linePtr = OS.g_data_input_stream_read_line (reader, length, 0, 0); while (linePtr != 0) { - byte[] lineBytes = new byte[length[0]]; - OS.memmove(lineBytes, linePtr, length[0]); + byte[] lineBytes = new byte[(int) length[0]]; + OS.memmove(lineBytes, linePtr, (int) length[0]); String line = new String (Converter.mbcsToWcs (null, lineBytes)); int separatorIndex = line.indexOf (':'); |