X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e710999da850e269768938f8103e7747f3673d47..ac1f31a10a723b385c6e4df346fe5ac2b18cda1b:/src/jmsg_file.c diff --git a/src/jmsg_file.c b/src/jmsg_file.c index 2b00cba44e..36650e262e 100644 --- a/src/jmsg_file.c +++ b/src/jmsg_file.c @@ -26,9 +26,14 @@ Java_org_simgrid_msg_File_open(JNIEnv *env, jobject jfile, jobject jstorage, job const char *storage = (*env)->GetStringUTFChars(env, jstorage, 0); const char *path = (*env)->GetStringUTFChars(env, jpath, 0); const char *mode = (*env)->GetStringUTFChars(env, jmode, 0); - - msg_file_t file = MSG_file_open(storage, path, mode); - + msg_file_t file; + xbt_ex_t e; + TRY { + file = MSG_file_open(storage, path, mode); + } + CATCH(e) { + xbt_ex_free(e); + } jfile_bind(env, jfile, file); (*env)->ReleaseStringUTFChars(env, jstorage, storage); @@ -38,18 +43,28 @@ Java_org_simgrid_msg_File_open(JNIEnv *env, jobject jfile, jobject jstorage, job JNIEXPORT jlong JNICALL Java_org_simgrid_msg_File_read(JNIEnv *env, jobject jfile, jlong jsize, jlong jnmemb) { msg_file_t file = jfile_get_native(env, jfile); - - size_t n = MSG_file_read(NULL,(size_t)jsize, (size_t)jnmemb, file); - + size_t n; + xbt_ex_t e; + TRY { + n = MSG_file_read(NULL,(size_t)jsize, (size_t)jnmemb, file); + } + CATCH (e) { + xbt_ex_free(e); + } return (jlong)n; } JNIEXPORT jlong JNICALL Java_org_simgrid_msg_File_write(JNIEnv *env, jobject jfile, jlong jsize, jlong jnmemb) { msg_file_t file = jfile_get_native(env, jfile); - - size_t n = MSG_file_write(NULL, (size_t)jsize, (size_t)jnmemb, file); - + xbt_ex_t e; + size_t n; + TRY { + n = MSG_file_write(NULL, (size_t)jsize, (size_t)jnmemb, file); + } + CATCH(e) { + xbt_ex_free(e); + } return (jlong)n; } JNIEXPORT void JNICALL