[Mulgara-svn] r620 - trunk/src/jar/util-xa/java/org/mulgara/store/xa

isidhu at mulgara.org isidhu at mulgara.org
Tue Jan 22 02:16:56 UTC 2008


Author: isidhu
Date: 2008-01-04 13:51:34 -0800 (Fri, 04 Jan 2008)
New Revision: 620

Modified:
   trunk/src/jar/util-xa/java/org/mulgara/store/xa/Block.java
Log:
modified get(int, ByteBuffer) to do bulk copy between source and destination buffers

Modified: trunk/src/jar/util-xa/java/org/mulgara/store/xa/Block.java
===================================================================
--- trunk/src/jar/util-xa/java/org/mulgara/store/xa/Block.java	2007-12-14 14:03:55 UTC (rev 619)
+++ trunk/src/jar/util-xa/java/org/mulgara/store/xa/Block.java	2008-01-04 21:51:34 UTC (rev 620)
@@ -273,13 +273,13 @@
    * @param offset The location of the required buffer within the data block.
    * @param byteBuffer The buffer to fill.
    */
+  
   public void get(int offset, ByteBuffer byteBuffer) {
-    assert offset + byteBuffer.remaining() <= blockSize;
-
-    int start = byteOffset + offset;
-    while (byteBuffer.hasRemaining()) {
-      byteBuffer.put(bb.get(start++));
-    }
+	  ByteBuffer src = bb.asReadOnlyBuffer();
+	  int start = byteOffset + offset;
+	  src.position(start);
+	  src.limit(Math.min(start + byteBuffer.limit() - byteBuffer.position(), src.limit()));
+	  byteBuffer.put(src);
   }
 
   /**




More information about the Mulgara-svn mailing list