aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/sun/gluegen/JavaEmitter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/sun/gluegen/JavaEmitter.java')
-rw-r--r--src/java/com/sun/gluegen/JavaEmitter.java24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/java/com/sun/gluegen/JavaEmitter.java b/src/java/com/sun/gluegen/JavaEmitter.java
index 0759d81..0a92735 100644
--- a/src/java/com/sun/gluegen/JavaEmitter.java
+++ b/src/java/com/sun/gluegen/JavaEmitter.java
@@ -700,7 +700,7 @@ public class JavaEmitter implements GlueEmitter {
// arg_direct,
// ... );
// }
- // private native void fooMethod0(Object arg, int arg_byte_offset, boolean arg_is_direct, ...);
+ // private native void fooMethod1(Object arg, int arg_byte_offset, boolean arg_is_direct, ...);
//
// Method taking primitive array argument:
// Interface class:
@@ -713,13 +713,15 @@ public class JavaEmitter implements GlueEmitter {
// }
// public void fooMethod(IntBuffer arg) {
// ... bounds checks, etc. ...
- // if (arg.isDirect()) {
- // fooMethod0(arg, computeDirectBufferByteOffset(arg));
- // } else {
- // fooMethod1(getIndirectBufferArray(arg), computeIndirectBufferByteOffset(arg));
- // }
+ //
+ // boolean arg_direct = BufferFactory.isDirect(arg);
+ //
+ // fooMethod1(arg_direct?arg:BufferFactory.getArray(arg),
+ // arg_direct?BufferFactory.getDirectBufferByteOffset(arg):BufferFactory.getIndirectBufferByteOffset(arg),
+ // arg_direct,
+ // ... );
// }
- // private native void fooMethod0(Object arg, int arg_byte_offset, boolean arg_is_direct, ...);
+ // private native void fooMethod1(Object arg, int arg_byte_offset, boolean arg_is_direct, ...);
//
// Note in particular that the public entry point taking an
// array is merely a special case of the indirect buffer case.
@@ -909,7 +911,7 @@ public class JavaEmitter implements GlueEmitter {
}
writer.println(" public static int size() {");
if (doBaseClass) {
- writer.println(" if (CPU.is32Bit()) {");
+ writer.println(" if (Platform.is32Bit()) {");
writer.println(" return " + containingTypeName + "32" + ".size();");
writer.println(" } else {");
writer.println(" return " + containingTypeName + "64" + ".size();");
@@ -925,7 +927,7 @@ public class JavaEmitter implements GlueEmitter {
writer.println(" }");
writer.println();
writer.println(" public static " + containingTypeName + " create(java.nio.ByteBuffer buf) {");
- writer.println(" if (CPU.is32Bit()) {");
+ writer.println(" if (Platform.is32Bit()) {");
writer.println(" return new " + containingTypeName + "32(buf);");
writer.println(" } else {");
writer.println(" return new " + containingTypeName + "64(buf);");
@@ -1794,7 +1796,7 @@ public class JavaEmitter implements GlueEmitter {
if (convertToArrays) {
result = result.replaceJavaArgumentType(i, javaType(ArrayTypes.longArrayClass));
} else {
- result = result.replaceJavaArgumentType(i, JavaType.forNIOPointerBufferClass());
+ result = result.replaceJavaArgumentType(i, JavaType.forNIOInt64BufferClass());
}
} else if (t.isCFloatPointerType()) {
arrayPossible = true;
@@ -1828,7 +1830,7 @@ public class JavaEmitter implements GlueEmitter {
} else if (t.isCInt32PointerType()) {
result = result.replaceJavaArgumentType(-1, JavaType.forNIOIntBufferClass());
} else if (t.isCInt64PointerType()) {
- result = result.replaceJavaArgumentType(-1, JavaType.forNIOPointerBufferClass());
+ result = result.replaceJavaArgumentType(-1, JavaType.forNIOInt64BufferClass());
} else if (t.isCFloatPointerType()) {
result = result.replaceJavaArgumentType(-1, JavaType.forNIOFloatBufferClass());
} else if (t.isCDoublePointerType()) {