2004-04-21 Michael Koch <konqueror@gmx.de>

* java/nio/DirectByteBufferImpl.java
	(shiftDown): Made static, give address as argument and
	provide a convenience method that overwrites shiftDown in
	ByteBufferImpl and calls the native shiftDown.
	* java/nio/MappedByteBufferImpl.java
	(): Use optimized method in DirectByteBufferImpl.
	* java/nio/natDirectByteBufferImpl.cc
	(shiftDown): Changed method signature. Removed usage of array_offset.

From-SVN: r80967
This commit is contained in:
Michael Koch 2004-04-21 15:33:53 +00:00 committed by Michael Koch
parent f9da97f03c
commit 86a80fc352
4 changed files with 23 additions and 6 deletions

View file

@ -136,15 +136,20 @@ final class DirectByteBufferImpl extends ByteBuffer
return this;
}
native void shiftDown (int dst_offset, int src_offset, int count);
static native void shiftDown(RawData address, int dst_offset, int src_offset, int count);
void shiftDown(int dst_offset, int src_offset, int count)
{
shiftDown(address, dst_offset, src_offset, count);
}
public ByteBuffer compact ()
{
int pos = position();
if (pos > 0)
{
int count = remaining();
shiftDown(0, pos, count);
shiftDown(address, 0, pos, count);
position(count);
limit(capacity());
}