summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXerxes Rånby <[email protected]>2013-01-18 16:25:59 +0100
committerXerxes Rånby <[email protected]>2013-01-18 16:25:59 +0100
commit2b7d1b1d25cb2cd73311ec9159b465f0391bf5e0 (patch)
treefef05074f0e4c5c67caeaa68a39402212befd226
parent9c1c6d49e11574d8afe351a8100872a645ccdd36 (diff)
Buffer.isDirect() operation is undefined w/ Eclipse ecj and GCJ gij JRE.
Fix for the runtime error using GCJ gij JRE: java.lang.NoSuchMethodError: method java.nio.Buffer.isDirect with signature ()Z was not found. at com.jogamp.common.nio.Buffers.isDirect(Buffers.java:363) Also Eclipse ecj refuses to compile code using java.nio.Buffer.isDirect(). ---------- 1. ERROR ... return ((Buffer) buf).isDirect(); ^^^^^^^^ The method isDirect() is undefined for the type Buffer Signed-off-by: Xerxes Rånby <[email protected]>
-rwxr-xr-xsrc/java/com/jogamp/common/nio/Buffers.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/java/com/jogamp/common/nio/Buffers.java b/src/java/com/jogamp/common/nio/Buffers.java
index 3da1261..9090433 100755
--- a/src/java/com/jogamp/common/nio/Buffers.java
+++ b/src/java/com/jogamp/common/nio/Buffers.java
@@ -359,11 +359,25 @@ public class Buffers {
if (buf == null) {
return true;
}
- if (buf instanceof Buffer) {
- return ((Buffer) buf).isDirect();
+ if (buf instanceof ByteBuffer) {
+ return ((ByteBuffer) buf).isDirect();
+ } else if (buf instanceof IntBuffer) {
+ return ((IntBuffer) buf).isDirect();
+ } else if (buf instanceof ShortBuffer) {
+ return ((ShortBuffer) buf).isDirect();
+ } else if (buf instanceof FloatBuffer) {
+ return ((FloatBuffer) buf).isDirect();
+ } else if (buf instanceof DoubleBuffer) {
+ return ((DoubleBuffer) buf).isDirect();
+ } else if (buf instanceof LongBuffer) {
+ return ((LongBuffer) buf).isDirect();
+ } else if (buf instanceof CharBuffer) {
+ return ((CharBuffer) buf).isDirect();
} else if (buf instanceof PointerBuffer) {
return ((PointerBuffer) buf).isDirect();
- }
+ } else if (buf instanceof Buffer) {
+ throw new IllegalArgumentException("Unexpected buffer type Buffer.isDirect() operation is undefined");
+ }
throw new IllegalArgumentException("Unexpected buffer type " + buf.getClass().getName());
}