From: <sp...@us...> - 2011-10-13 16:54:04
|
Revision: 3670 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3670&view=rev Author: spasi Date: 2011-10-13 16:53:53 +0000 (Thu, 13 Oct 2011) Log Message: ----------- Fixed signatures: CharSequence[] parameters and ByteBuffer returns. Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/util/generator/JNITypeTranslator.java trunk/LWJGL/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java trunk/LWJGL/src/java/org/lwjgl/util/generator/SignatureTranslator.java Modified: trunk/LWJGL/src/java/org/lwjgl/util/generator/JNITypeTranslator.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/util/generator/JNITypeTranslator.java 2011-10-12 22:31:12 UTC (rev 3669) +++ trunk/LWJGL/src/java/org/lwjgl/util/generator/JNITypeTranslator.java 2011-10-13 16:53:53 UTC (rev 3670) @@ -69,7 +69,7 @@ public void visitArrayType(ArrayType t) { final String className = t.getComponentType().toString(); if ( "java.lang.CharSequence".equals(className) ) - signature.append("jobject"); + signature.append("jlong"); else if ( "java.nio.ByteBuffer".equals(className) ) signature.append("jobjectArray"); else if ( "org.lwjgl.opencl.CLMem".equals(className) ) Modified: trunk/LWJGL/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java 2011-10-12 22:31:12 UTC (rev 3669) +++ trunk/LWJGL/src/java/org/lwjgl/util/generator/RegisterStubsGenerator.java 2011-10-13 16:53:53 UTC (rev 3670) @@ -101,10 +101,11 @@ final CachedResult cached_result_annotation = method.getAnnotation(CachedResult.class); final AutoSize auto_size_annotation = method.getAnnotation(AutoSize.class); - if ( Utils.getNIOBufferType(result_type) != null && (auto_size_annotation == null || !auto_size_annotation.isNative()) ) + final boolean isNIOBuffer = Utils.getNIOBufferType(result_type) != null; + if ( isNIOBuffer && (auto_size_annotation == null || !auto_size_annotation.isNative()) ) signature += "J"; - String result_type_signature = getTypeSignature(result_type, false); + final String result_type_signature = isNIOBuffer ? "Ljava/nio/ByteBuffer;" : getTypeSignature(result_type, false); if ( cached_result_annotation != null ) signature += result_type_signature; Modified: trunk/LWJGL/src/java/org/lwjgl/util/generator/SignatureTranslator.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/util/generator/SignatureTranslator.java 2011-10-12 22:31:12 UTC (rev 3669) +++ trunk/LWJGL/src/java/org/lwjgl/util/generator/SignatureTranslator.java 2011-10-13 16:53:53 UTC (rev 3670) @@ -71,7 +71,7 @@ public void visitArrayType(ArrayType t) { final Class type = Utils.getJavaType(t.getComponentType()); if ( CharSequence.class.isAssignableFrom(type) ) - signature.append("Ljava/nio/ByteBuffer;I"); + signature.append("J"); else if ( Buffer.class.isAssignableFrom(type) ) signature.append("[Ljava/nio/ByteBuffer;"); else if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) ) @@ -82,18 +82,16 @@ public void visitClassType(ClassType t) { Class type = NativeTypeTranslator.getClassFromType(t); - String type_name; - if ( (CharSequence.class.isAssignableFrom(type) && !String.class.equals(type)) || CharSequence[].class.isAssignableFrom(type) || PointerBuffer.class.isAssignableFrom(type) ) - type_name = ByteBuffer.class.getName(); - else if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) ) { - signature.append("J"); - return; - } else - type_name = t.getDeclaration().getQualifiedName(); - if ( Utils.isAddressableType(type) && !String.class.equals(type) ) + if ( org.lwjgl.PointerWrapper.class.isAssignableFrom(type) || (Utils.isAddressableType(type) && !String.class.equals(type)) ) signature.append("J"); else { + String type_name; + if ( (CharSequence.class.isAssignableFrom(type) && !String.class.equals(type)) || CharSequence[].class.isAssignableFrom(type) || PointerBuffer.class.isAssignableFrom(type) ) + type_name = ByteBuffer.class.getName(); + else + type_name = t.getDeclaration().getQualifiedName(); + signature.append("L"); signature.append(getNativeNameFromClassName(type_name)); signature.append(";"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |