From 3caf672e4225d7564b17d3fb908854da33a60499 Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Mon, 22 Jul 2013 20:13:01 +0300 Subject: [PATCH] Fixed pointer array init for NIO buffers. --- .../lwjgl/util/generator/NativeMethodStubsGenerator.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java b/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java index 19006c09..7aa291b8 100644 --- a/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java +++ b/src/java/org/lwjgl/util/generator/NativeMethodStubsGenerator.java @@ -381,11 +381,12 @@ public class NativeMethodStubsGenerator { writer.println("\t" + n + "_i = 0;"); // Fill pointer array with the buffer pointers writer.println("\twhile ( " + n + "_i < " + pointerArray_annotation.value() + " ) {"); - if ( component_type.isAssignableFrom(Buffer.class) ) - writer.println("\t\t" + n + "_object = (*env)->GetObjectArrayElement(env, " + param.getSimpleName() + ", " + n + "_i);"); + writer.println("\t\t" + n + "_object = (*env)->GetObjectArrayElement(env, " + param.getSimpleName() + ", " + n + "_i);"); + writer.print("\t\t" + param.getSimpleName() + n + "[" + n + "_i++] = (" + translator.getSignature(true) + ")"); + if ( Buffer.class.isAssignableFrom(component_type) ) + writer.println("(*env)->GetDirectBufferAddress(env, " + n + "_object);"); else - writer.println("\t\t" + n + "_object = (*env)->GetObjectArrayElement(env, " + param.getSimpleName() + ", " + n + "_i);"); - writer.println("\t\t" + param.getSimpleName() + n + "[" + n + "_i++] = (" + translator.getSignature(true) + ")(intptr_t)getPointerWrapperAddress(env, " + n + "_object);"); + writer.println("(intptr_t)getPointerWrapperAddress(env, " + n + "_object);"); writer.println("\t}"); } else { final String lengths = pointerArray_annotation.lengths();