diff --git a/src/java/org/lwjgl/test/mapped/MappedObjectTests1.java b/src/java/org/lwjgl/test/mapped/MappedObjectTests1.java index bc02a406..84856e32 100644 --- a/src/java/org/lwjgl/test/mapped/MappedObjectTests1.java +++ b/src/java/org/lwjgl/test/mapped/MappedObjectTests1.java @@ -117,6 +117,19 @@ public class MappedObjectTests1 { } catch (IndexOutOfBoundsException e) { // expected, ignore } + + try { + ByteBuffer posTest = ByteBuffer.allocateDirect(200); + posTest.position(10 * MappedFloat.SIZEOF); // position > 0 + + MappedFloat vecs2 = MappedFloat.map(posTest); + vecs2.view = 39; + assert vecs2.view == 39; + vecs2.view = 40; + System.out.println("org.lwjgl.util.mapped.Checks is false or there is a bug in bounds checking."); + } catch (IndexOutOfBoundsException e) { + // expected, ignore + } } // test dup diff --git a/src/java/org/lwjgl/util/mapped/MappedHelper.java b/src/java/org/lwjgl/util/mapped/MappedHelper.java index 21977844..ca466f80 100644 --- a/src/java/org/lwjgl/util/mapped/MappedHelper.java +++ b/src/java/org/lwjgl/util/mapped/MappedHelper.java @@ -60,7 +60,7 @@ public class MappedHelper { throw new IllegalStateException("sizeof not a multiple of alignment"); mo.stride = sizeof; - long addr = MappedObjectUnsafe.getBufferBaseAddress(buffer); + long addr = MappedObjectUnsafe.getBufferBaseAddress(buffer) + buffer.position(); if ( addr % align != 0 ) throw new IllegalStateException("buffer address not aligned on " + align + " bytes"); diff --git a/src/java/org/lwjgl/util/mapped/MappedObjectTransformer.java b/src/java/org/lwjgl/util/mapped/MappedObjectTransformer.java index 6e2f5365..b3956b5a 100644 --- a/src/java/org/lwjgl/util/mapped/MappedObjectTransformer.java +++ b/src/java/org/lwjgl/util/mapped/MappedObjectTransformer.java @@ -62,7 +62,7 @@ public class MappedObjectTransformer { String vmName = System.getProperty("java.vm.name"); if ( vmName != null && !vmName.contains("Server") ) { - LWJGLUtil.log("Warning: " + MappedObject.class.getSimpleName() + "s have inferiour performance on Client VMs, please consider switching to a Server VM."); + System.err.println("Warning: " + MappedObject.class.getSimpleName() + "s have inferiour performance on Client VMs, please consider switching to a Server VM."); } }