From: Gabriel Corona Date: Fri, 22 Jul 2016 10:38:49 +0000 (+0200) Subject: [java] Fix binding for RngStream.setSeed on LP64 X-Git-Tag: v3_14~735^2~1 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e173d7ff8eb9315d21b7fbd357e28ca34e1d9a5f [java] Fix binding for RngStream.setSeed on LP64 This is the same bug I fixed earlier in setPackageSeed() but I did not notice it was there as well :/ --- diff --git a/src/bindings/java/jmsg_rngstream.cpp b/src/bindings/java/jmsg_rngstream.cpp index 2dda4cad9a..a7e82b7dd3 100644 --- a/src/bindings/java/jmsg_rngstream.cpp +++ b/src/bindings/java/jmsg_rngstream.cpp @@ -110,7 +110,13 @@ JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_RngStream_setSeed(JNIEnv *env, j if (!rngstream) return JNI_FALSE; - int result = RngStream_SetSeed(rngstream, (unsigned long*)buffer); + // The C API expects unsigned long which are wider than int on LP64. + // We need to convert: + unsigned long seed[6]; + for (int i = 0; i != 6; ++i) + seed[i] = buffer[i]; + + int result = RngStream_SetSeed(rngstream, seed); return result == -1 ? JNI_FALSE : JNI_TRUE; }