ByteBuffer.java (shiftDown): New helper method.
* java/nio/ByteBuffer.java (shiftDown): New helper method. * java/nio/natDirectByteBufferImpl.cc (shiftDown): New implementation. * java/nio/ByteBufferImpl.java (compact): Use new shiftDown method. * sava/nio/ByteBufferHelper.java: Remove redundant 'final' specifiers. Pass ByteOrder parameter to most methods, since the underlying ByteBuffer's order isn't always what we should use. * java/nio/ByteBufferImpl.java: Pass byte-order various places. * java/nio/DirectByteBufferImpl.java: Likewise. Use ByteBufferHelper methods. * java/nio/MappedByteBufferImpl.java: Likewise. (compact): Use shiftDown. * java/nio/CharViewBufferImpl.java (<init>): Pass byte-order. (get, put): Use ByteBufferHelper. (compact): Use new shiftDown method. (duplicate(boolean)): New helper method. (duplicate, asReadOnlyBuffer): Use it. (order): Return endian field. * java/nio/DoubleViewBufferImpl.java: Likewise. * java/nio/FloatViewBufferImpl.java: Likewise. * java/nio/IntViewBufferImpl.java: Likewise. * java/nio/LongViewBufferImpl.java: Likewise. * java/nio/ShortViewBufferImpl.java: Likewise. * java/nio/CharViewBufferImpl.java (subsequence): Redundant test. * java/nio/DirectByteBufferImpl.java (shiftDown): New native method. (compact): Re-implement using shiftDown. From-SVN: r77501
This commit is contained in:
parent
b46b8fb40c
commit
40c23042f4
13 changed files with 493 additions and 552 deletions
|
@ -1,5 +1,5 @@
|
|||
/* ByteBufferImpl.java --
|
||||
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -58,32 +58,32 @@ final class ByteBufferImpl extends ByteBuffer
|
|||
|
||||
public CharBuffer asCharBuffer ()
|
||||
{
|
||||
return new CharViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ());
|
||||
return new CharViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly (), order());
|
||||
}
|
||||
|
||||
public ShortBuffer asShortBuffer ()
|
||||
{
|
||||
return new ShortViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ());
|
||||
return new ShortViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly (), order());
|
||||
}
|
||||
|
||||
public IntBuffer asIntBuffer ()
|
||||
{
|
||||
return new IntViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ());
|
||||
return new IntViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly (), order());
|
||||
}
|
||||
|
||||
public LongBuffer asLongBuffer ()
|
||||
{
|
||||
return new LongViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ());
|
||||
return new LongViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly (), order());
|
||||
}
|
||||
|
||||
public FloatBuffer asFloatBuffer ()
|
||||
{
|
||||
return new FloatViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ());
|
||||
return new FloatViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly (), order());
|
||||
}
|
||||
|
||||
public DoubleBuffer asDoubleBuffer ()
|
||||
{
|
||||
return new DoubleViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ());
|
||||
return new DoubleViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly (), order());
|
||||
}
|
||||
|
||||
public boolean isReadOnly ()
|
||||
|
@ -108,15 +108,14 @@ final class ByteBufferImpl extends ByteBuffer
|
|||
|
||||
public ByteBuffer compact ()
|
||||
{
|
||||
int copied = 0;
|
||||
|
||||
while (remaining () > 0)
|
||||
int pos = position();
|
||||
if (pos > 0)
|
||||
{
|
||||
put (copied, get ());
|
||||
copied++;
|
||||
int count = remaining();
|
||||
shiftDown(0, pos, count);
|
||||
position(count);
|
||||
limit(capacity());
|
||||
}
|
||||
|
||||
position (copied);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -182,121 +181,133 @@ final class ByteBufferImpl extends ByteBuffer
|
|||
|
||||
final public char getChar ()
|
||||
{
|
||||
return ByteBufferHelper.getChar (this);
|
||||
return ByteBufferHelper.getChar(this, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putChar (char value)
|
||||
{
|
||||
return ByteBufferHelper.putChar (this, value);
|
||||
ByteBufferHelper.putChar(this, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public char getChar (int index)
|
||||
{
|
||||
return ByteBufferHelper.getChar (this, index);
|
||||
return ByteBufferHelper.getChar(this, index, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putChar (int index, char value)
|
||||
{
|
||||
return ByteBufferHelper.putChar (this, index, value);
|
||||
ByteBufferHelper.putChar(this, index, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public short getShort ()
|
||||
{
|
||||
return ByteBufferHelper.getShort (this);
|
||||
return ByteBufferHelper.getShort(this, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putShort (short value)
|
||||
{
|
||||
return ByteBufferHelper.putShort (this, value);
|
||||
ByteBufferHelper.putShort(this, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public short getShort (int index)
|
||||
{
|
||||
return ByteBufferHelper.getShort (this, index);
|
||||
return ByteBufferHelper.getShort(this, index, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putShort (int index, short value)
|
||||
{
|
||||
return ByteBufferHelper.putShort (this, index, value);
|
||||
ByteBufferHelper.putShort(this, index, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public int getInt ()
|
||||
{
|
||||
return ByteBufferHelper.getInt (this);
|
||||
return ByteBufferHelper.getInt(this, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putInt (int value)
|
||||
{
|
||||
return ByteBufferHelper.putInt (this, value);
|
||||
ByteBufferHelper.putInt(this, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public int getInt (int index)
|
||||
{
|
||||
return ByteBufferHelper.getInt (this, index);
|
||||
return ByteBufferHelper.getInt(this, index, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putInt (int index, int value)
|
||||
{
|
||||
return ByteBufferHelper.putInt (this, index, value);
|
||||
ByteBufferHelper.putInt(this, index, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public long getLong ()
|
||||
{
|
||||
return ByteBufferHelper.getLong (this);
|
||||
return ByteBufferHelper.getLong(this, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putLong (long value)
|
||||
{
|
||||
return ByteBufferHelper.putLong (this, value);
|
||||
ByteBufferHelper.putLong (this, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public long getLong (int index)
|
||||
{
|
||||
return ByteBufferHelper.getLong (this, index);
|
||||
return ByteBufferHelper.getLong (this, index, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putLong (int index, long value)
|
||||
{
|
||||
return ByteBufferHelper.putLong (this, index, value);
|
||||
ByteBufferHelper.putLong (this, index, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public float getFloat ()
|
||||
{
|
||||
return ByteBufferHelper.getFloat (this);
|
||||
return ByteBufferHelper.getFloat (this, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putFloat (float value)
|
||||
{
|
||||
return ByteBufferHelper.putFloat (this, value);
|
||||
ByteBufferHelper.putFloat (this, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public float getFloat (int index)
|
||||
public final float getFloat (int index)
|
||||
{
|
||||
return ByteBufferHelper.getFloat (this, index);
|
||||
return ByteBufferHelper.getFloat (this, index, order());
|
||||
}
|
||||
|
||||
public final ByteBuffer putFloat (int index, float value)
|
||||
final public ByteBuffer putFloat (int index, float value)
|
||||
{
|
||||
return ByteBufferHelper.putFloat (this, index, value);
|
||||
ByteBufferHelper.putFloat (this, index, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public double getDouble ()
|
||||
{
|
||||
return ByteBufferHelper.getDouble (this);
|
||||
return ByteBufferHelper.getDouble (this, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putDouble (double value)
|
||||
{
|
||||
return ByteBufferHelper.putDouble (this, value);
|
||||
ByteBufferHelper.putDouble (this, value, order());
|
||||
return this;
|
||||
}
|
||||
|
||||
final public double getDouble (int index)
|
||||
{
|
||||
return ByteBufferHelper.getDouble (this, index);
|
||||
return ByteBufferHelper.getDouble (this, index, order());
|
||||
}
|
||||
|
||||
final public ByteBuffer putDouble (int index, double value)
|
||||
{
|
||||
return ByteBufferHelper.putDouble (this, index, value);
|
||||
ByteBufferHelper.putDouble (this, index, value, order());
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue