Fixed signatures: CharSequence[] parameters and ByteBuffer returns.
This commit is contained in:
parent
67c3452bb4
commit
0d0ffcbb59
|
@ -69,7 +69,7 @@ public class JNITypeTranslator implements TypeVisitor {
|
|||
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) )
|
||||
|
|
|
@ -101,10 +101,11 @@ public class RegisterStubsGenerator {
|
|||
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;
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ class SignatureTranslator implements TypeVisitor {
|
|||
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 @@ class SignatureTranslator implements TypeVisitor {
|
|||
|
||||
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(";");
|
||||
|
|
Loading…
Reference in New Issue