aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2011-02-22 02:03:54 +0100
committerMichael Bien <[email protected]>2011-02-22 02:03:54 +0100
commitb4d3f5fc0d846c3b302e99846610e52955ec826b (patch)
treea53e35805f851237eaf0c7d669987858f0a9b70c
parentac681d76d9445618aa8d44abfdfa9efeccc16673 (diff)
- ensure slice uses the buffers original byteorder.
- create new buffers only if size > capacity not if >= capacity
-rw-r--r--src/java/com/jogamp/common/nio/CachedBufferFactory.java4
-rw-r--r--src/junit/com/jogamp/common/nio/CachedBufferFactoryTest.java2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/java/com/jogamp/common/nio/CachedBufferFactory.java b/src/java/com/jogamp/common/nio/CachedBufferFactory.java
index 36bac13..dbeed2d 100644
--- a/src/java/com/jogamp/common/nio/CachedBufferFactory.java
+++ b/src/java/com/jogamp/common/nio/CachedBufferFactory.java
@@ -168,7 +168,7 @@ public class CachedBufferFactory {
public ByteBuffer newDirectByteBuffer(int size) {
// if large enough... just create it
- if (size >= currentBuffer.capacity()) {
+ if (size > currentBuffer.capacity()) {
checkIfFixed();
return Buffers.newDirectByteBuffer(size);
}
@@ -180,7 +180,7 @@ public class CachedBufferFactory {
}
currentBuffer.limit(currentBuffer.position() + size);
- ByteBuffer result = currentBuffer.slice();
+ ByteBuffer result = currentBuffer.slice().order(currentBuffer.order());
currentBuffer.position(currentBuffer.limit());
currentBuffer.limit(currentBuffer.capacity());
return result;
diff --git a/src/junit/com/jogamp/common/nio/CachedBufferFactoryTest.java b/src/junit/com/jogamp/common/nio/CachedBufferFactoryTest.java
index 0b10fe8..a00f4c9 100644
--- a/src/junit/com/jogamp/common/nio/CachedBufferFactoryTest.java
+++ b/src/junit/com/jogamp/common/nio/CachedBufferFactoryTest.java
@@ -28,6 +28,7 @@
package com.jogamp.common.nio;
import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
import java.nio.IntBuffer;
import java.util.ArrayList;
import java.util.List;
@@ -88,6 +89,7 @@ public class CachedBufferFactoryTest {
// create
for (int i = 0; i < sizes.length; i++) {
buffers[i] = factory.newDirectIntBuffer(sizes[i]);
+ assertEquals(ByteOrder.nativeOrder(), buffers[i].order());
fill(buffers[i], values[i]);
}