diff --git a/ompi/mpi/java/c/mpi_MPI.c b/ompi/mpi/java/c/mpi_MPI.c index f0fe93eca3..fcdd4966b5 100644 --- a/ompi/mpi/java/c/mpi_MPI.c +++ b/ompi/mpi/java/c/mpi_MPI.c @@ -78,7 +78,7 @@ ompi_java_globals_t ompi_java = {0}; int ompi_mpi_java_eager = 65536; -opal_free_list_t ompi_java_buffers = {0}; +opal_free_list_t ompi_java_buffers = {{0}}; static void *libmpi = NULL; static void bufferConstructor(ompi_java_buffer_t *item) diff --git a/ompi/mpi/java/c/mpi_Win.c b/ompi/mpi/java/c/mpi_Win.c index fe045fb175..2c55359cce 100644 --- a/ompi/mpi/java/c/mpi_Win.c +++ b/ompi/mpi/java/c/mpi_Win.c @@ -43,7 +43,8 @@ JNIEXPORT jlong JNICALL Java_mpi_Win_createWin( return (jlong)win; } -JNIEXPORT jlong JNICALL Java_mpi_Win_create_dynamicWin( +JNIEXPORT jlong JNICALL Java_mpi_Win_createDynamicWin( + JNIEnv *env, jobject jthis, jlong info, jlong comm) { MPI_Win win; @@ -56,24 +57,22 @@ JNIEXPORT jlong JNICALL Java_mpi_Win_create_dynamicWin( } JNIEXPORT void JNICALL Java_mpi_Win_attach( - JNIEnv *env, jobject jthis, jobject jBase, + JNIEnv *env, jobject jthis, jlong win, jobject jBase, jint size) { void *base = (*env)->GetDirectBufferAddress(env, jBase); - MPI_Win win; - int rc = MPI_Win_attach(win, base, (MPI_Aint)size); + int rc = MPI_Win_attach((MPI_Win)win, base, (MPI_Aint)size); ompi_java_exceptionCheck(env, rc); } JNIEXPORT void JNICALL Java_mpi_Win_detach( - JNIEnv *env, jobject jthis, jobject jBase) + JNIEnv *env, jobject jthis, jlong win, jobject jBase) { void *base = (*env)->GetDirectBufferAddress(env, jBase); - MPI_Win win; - int rc = MPI_Win_detach(win, base); + int rc = MPI_Win_detach((MPI_Win)win, base); ompi_java_exceptionCheck(env, rc); } diff --git a/ompi/mpi/java/java/Comm.java b/ompi/mpi/java/java/Comm.java index 5124d69f5d..729ffdb985 100644 --- a/ompi/mpi/java/java/Comm.java +++ b/ompi/mpi/java/java/Comm.java @@ -233,18 +233,6 @@ public final boolean isNull() return handle == nullHandle; } -/** - * Java binding of {@code MPI_COMM_GET_INFO}. - * @throws MPIException - */ -public final Info getInfo() throws MPIException -{ - MPI.check(); - return getInfo(handle); -} - -private native void getInfo(long handle, long info) throws MPIException; - /** * Java binding of {@code MPI_COMM_SET_INFO}. * @param info info object diff --git a/ompi/mpi/java/java/Win.java b/ompi/mpi/java/java/Win.java index 793b99f984..f968618883 100644 --- a/ompi/mpi/java/java/Win.java +++ b/ompi/mpi/java/java/Win.java @@ -76,10 +76,10 @@ private native long createWin( public Win(Info info, Comm comm) throws MPIException { - handle = createWinDynamic(info.handle, comm.handle); + handle = createDynamicWin(info.handle, comm.handle); } -private native long createWinDynamic( +private native long createDynamicWin( long info, long comm) throws MPIException; @@ -99,7 +99,8 @@ private int getBaseType(Datatype orgType, Datatype targetType) /** * Java binding of {@code MPI_WIN_ATTACH}. - * @param assertion program assertion + * @param base initial address of window + * @param size size of window (buffer elements) */ public void attach(Buffer base, int size) throws MPIException { @@ -129,7 +130,7 @@ private native void attach(long win, Buffer base, int size) throws MPIException; /** * Java binding of {@code MPI_WIN_DETACH}. - * @param assertion program assertion + * @param base initial address of window */ public void detach(Buffer base) throws MPIException { @@ -475,10 +476,10 @@ private native long free(long win) throws MPIException; public Info getInfo() throws MPIException { MPI.check(); - return getInfo(handle); + return new Info(getInfo(handle)); } -private native Info getInfo(long win) +private native long getInfo(long win) throws MPIException; /** @@ -489,10 +490,10 @@ private native Info getInfo(long win) public void setInfo(Info info) throws MPIException { MPI.check(); - setInfo(handle, info); + setInfo(handle, info.handle); } -private native void setInfo(long win, Info info) +private native void setInfo(long win, long info) throws MPIException; } // Win