diff options
| author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-19 06:59:23 +0000 |
|---|---|---|
| committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-19 06:59:23 +0000 |
| commit | 507fdaa1f8e9baea793e35976041100056376456 (patch) | |
| tree | 2bc55e0ef3fca053d995f689e0812505f3e152b2 /libjava | |
| parent | 3be2f219ac7d91186508ecd1a8791842eefa1764 (diff) | |
| download | ppe42-gcc-507fdaa1f8e9baea793e35976041100056376456.tar.gz ppe42-gcc-507fdaa1f8e9baea793e35976041100056376456.zip | |
2003-05-19 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/ByteBufferImpl.java
(putLong): Fixed conversion to bytes.
(putDouble): Fixed conversion to bytes.
* gnu/java/nio/DirectByteBufferImpl.java
(putLong): Fixed conversion to bytes.
(putDouble): Fixed conversion to bytes.
* gnu/java/nio/FileLockImpl.java
(isValid): Reformatted.
* java/nio/Buffer.java
(Buffer): Fixed off-by-one bug in handling mark.
* java/nio/ByteBuffer.java:
Added newline.
* java/nio/CharBuffer.java
(toString): Don't use relative get to get string data.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66946 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
| -rw-r--r-- | libjava/ChangeLog | 17 | ||||
| -rw-r--r-- | libjava/gnu/java/nio/ByteBufferImpl.java | 64 | ||||
| -rw-r--r-- | libjava/gnu/java/nio/DirectByteBufferImpl.java | 64 | ||||
| -rw-r--r-- | libjava/gnu/java/nio/FileLockImpl.java | 3 | ||||
| -rw-r--r-- | libjava/java/nio/Buffer.java | 2 | ||||
| -rw-r--r-- | libjava/java/nio/ByteBuffer.java | 1 | ||||
| -rw-r--r-- | libjava/java/nio/CharBuffer.java | 4 |
7 files changed, 87 insertions, 68 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 991730d7043..0846261dcf5 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,20 @@ +2003-05-19 Michael Koch <konqueror@gmx.de> + + * gnu/java/nio/ByteBufferImpl.java + (putLong): Fixed conversion to bytes. + (putDouble): Fixed conversion to bytes. + * gnu/java/nio/DirectByteBufferImpl.java + (putLong): Fixed conversion to bytes. + (putDouble): Fixed conversion to bytes. + * gnu/java/nio/FileLockImpl.java + (isValid): Reformatted. + * java/nio/Buffer.java + (Buffer): Fixed off-by-one bug in handling mark. + * java/nio/ByteBuffer.java: + Added newline. + * java/nio/CharBuffer.java + (toString): Don't use relative get to get string data. + 2003-05-16 Michael Koch <konqueror@gmx.de> * java/io/natFileDescriptorPosix.cc diff --git a/libjava/gnu/java/nio/ByteBufferImpl.java b/libjava/gnu/java/nio/ByteBufferImpl.java index cc7fabb5941..f9de8c7d152 100644 --- a/libjava/gnu/java/nio/ByteBufferImpl.java +++ b/libjava/gnu/java/nio/ByteBufferImpl.java @@ -311,14 +311,14 @@ public final class ByteBufferImpl extends ByteBuffer final public ByteBuffer putLong (long value) { // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00000000000000) >> 56)); - put ((byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put ((byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put ((byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put ((byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put ((byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put ((byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put ((byte) (((int) value) & 0x00000000000000ff)); + put ((byte) ((value & 0xff00000000000000L) >> 56)); + put ((byte) ((value & 0x00ff000000000000L) >> 48)); + put ((byte) ((value & 0x0000ff0000000000L) >> 40)); + put ((byte) ((value & 0x000000ff00000000L) >> 32)); + put ((byte) ((value & 0x00000000ff000000L) >> 24)); + put ((byte) ((value & 0x0000000000ff0000L) >> 16)); + put ((byte) ((value & 0x000000000000ff00L) >> 8)); + put ((byte) (value & 0x00000000000000ffL)); return this; } @@ -338,14 +338,14 @@ public final class ByteBufferImpl extends ByteBuffer final public ByteBuffer putLong (int index, long value) { // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00000000000000) >> 56)); - put (index + 1, (byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put (index + 2, (byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put (index + 3, (byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put (index + 4, (byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put (index + 5, (byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put (index + 6, (byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put (index + 7, (byte) (((int) value) & 0x00000000000000ff)); + put (index, (byte) ((value & 0xff00000000000000L) >> 56)); + put (index + 1, (byte) ((value & 0x00ff000000000000L) >> 48)); + put (index + 2, (byte) ((value & 0x0000ff0000000000L) >> 40)); + put (index + 3, (byte) ((value & 0x000000ff00000000L) >> 32)); + put (index + 4, (byte) ((value & 0x00000000ff000000L) >> 24)); + put (index + 5, (byte) ((value & 0x0000000000ff0000L) >> 16)); + put (index + 6, (byte) ((value & 0x000000000000ff00L) >> 8)); + put (index + 7, (byte) (value & 0x00000000000000ffL)); return this; } @@ -403,14 +403,14 @@ public final class ByteBufferImpl extends ByteBuffer final public ByteBuffer putDouble (double value) { // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00000000000000) >> 56)); - put ((byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put ((byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put ((byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put ((byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put ((byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put ((byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put ((byte) (((int) value) & 0x00000000000000ff)); + put ((byte) ((((long) value) & 0xff00000000000000L) >> 56)); + put ((byte) ((((long) value) & 0x00ff000000000000L) >> 48)); + put ((byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); + put ((byte) ((((long) value) & 0x000000ff00000000L) >> 32)); + put ((byte) ((((long) value) & 0x00000000ff000000L) >> 24)); + put ((byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); + put ((byte) ((((long) value) & 0x000000000000ff00L) >> 8)); + put ((byte) (((long) value) & 0x00000000000000ffL)); return this; } @@ -430,14 +430,14 @@ public final class ByteBufferImpl extends ByteBuffer final public ByteBuffer putDouble (int index, double value) { // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00000000000000) >> 56)); - put (index + 1, (byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put (index + 2, (byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put (index + 3, (byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put (index + 4, (byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put (index + 5, (byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put (index + 6, (byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put (index + 7, (byte) (((int) value) & 0x00000000000000ff)); + put (index, (byte) ((((long) value) & 0xff00000000000000L) >> 56)); + put (index + 1, (byte) ((((long) value) & 0x00ff000000000000L) >> 48)); + put (index + 2, (byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); + put (index + 3, (byte) ((((long) value) & 0x000000ff00000000L) >> 32)); + put (index + 4, (byte) ((((long) value) & 0x00000000ff000000L) >> 24)); + put (index + 5, (byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); + put (index + 6, (byte) ((((long) value) & 0x000000000000ff00L) >> 8)); + put (index + 7, (byte) (((long) value) & 0x00000000000000ffL)); return this; } } diff --git a/libjava/gnu/java/nio/DirectByteBufferImpl.java b/libjava/gnu/java/nio/DirectByteBufferImpl.java index 47b76bb8142..d214f0c4d83 100644 --- a/libjava/gnu/java/nio/DirectByteBufferImpl.java +++ b/libjava/gnu/java/nio/DirectByteBufferImpl.java @@ -291,14 +291,14 @@ public class DirectByteBufferImpl extends ByteBuffer final public ByteBuffer putLong (long value) { // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00000000000000) >> 56)); - put ((byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put ((byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put ((byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put ((byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put ((byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put ((byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put ((byte) (((int) value) & 0x00000000000000ff)); + put ((byte) ((value & 0xff00000000000000L) >> 56)); + put ((byte) ((value & 0x00ff000000000000L) >> 48)); + put ((byte) ((value & 0x0000ff0000000000L) >> 40)); + put ((byte) ((value & 0x000000ff00000000L) >> 32)); + put ((byte) ((value & 0x00000000ff000000L) >> 24)); + put ((byte) ((value & 0x0000000000ff0000L) >> 16)); + put ((byte) ((value & 0x000000000000ff00L) >> 8)); + put ((byte) (value & 0x00000000000000ffL)); return this; } @@ -318,14 +318,14 @@ public class DirectByteBufferImpl extends ByteBuffer final public ByteBuffer putLong (int index, long value) { // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00000000000000) >> 56)); - put (index + 1, (byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put (index + 2, (byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put (index + 3, (byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put (index + 4, (byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put (index + 5, (byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put (index + 6, (byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put (index + 7, (byte) (((int) value) & 0x00000000000000ff)); + put (index, (byte) ((value & 0xff00000000000000L) >> 56)); + put (index + 1, (byte) ((value & 0x00ff000000000000L) >> 48)); + put (index + 2, (byte) ((value & 0x0000ff0000000000L) >> 40)); + put (index + 3, (byte) ((value & 0x000000ff00000000L) >> 32)); + put (index + 4, (byte) ((value & 0x00000000ff000000L) >> 24)); + put (index + 5, (byte) ((value & 0x0000000000ff0000L) >> 16)); + put (index + 6, (byte) ((value & 0x000000000000ff00L) >> 8)); + put (index + 7, (byte) (value & 0x00000000000000ffL)); return this; } @@ -383,14 +383,14 @@ public class DirectByteBufferImpl extends ByteBuffer final public ByteBuffer putDouble (double value) { // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00000000000000) >> 56)); - put ((byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put ((byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put ((byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put ((byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put ((byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put ((byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put ((byte) (((int) value) & 0x00000000000000ff)); + put ((byte) ((((long) value) & 0xff00000000000000L) >> 56)); + put ((byte) ((((long) value) & 0x00ff000000000000L) >> 48)); + put ((byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); + put ((byte) ((((long) value) & 0x000000ff00000000L) >> 32)); + put ((byte) ((((long) value) & 0x00000000ff000000L) >> 24)); + put ((byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); + put ((byte) ((((long) value) & 0x000000000000ff00L) >> 8)); + put ((byte) (((long) value) & 0x00000000000000ffL)); return this; } @@ -410,14 +410,14 @@ public class DirectByteBufferImpl extends ByteBuffer final public ByteBuffer putDouble (int index, double value) { // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00000000000000) >> 56)); - put (index + 1, (byte) ((((int) value) & 0x00ff000000000000) >> 48)); - put (index + 2, (byte) ((((int) value) & 0x0000ff0000000000) >> 40)); - put (index + 3, (byte) ((((int) value) & 0x000000ff00000000) >> 32)); - put (index + 4, (byte) ((((int) value) & 0x00000000ff000000) >> 24)); - put (index + 5, (byte) ((((int) value) & 0x0000000000ff0000) >> 16)); - put (index + 6, (byte) ((((int) value) & 0x000000000000ff00) >> 8)); - put (index + 7, (byte) (((int) value) & 0x00000000000000ff)); + put (index, (byte) ((((long) value) & 0xff00000000000000L) >> 56)); + put (index + 1, (byte) ((((long) value) & 0x00ff000000000000L) >> 48)); + put (index + 2, (byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); + put (index + 3, (byte) ((((long) value) & 0x000000ff00000000L) >> 32)); + put (index + 4, (byte) ((((long) value) & 0x00000000ff000000L) >> 24)); + put (index + 5, (byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); + put (index + 6, (byte) ((((long) value) & 0x000000000000ff00L) >> 8)); + put (index + 7, (byte) (((long) value) & 0x00000000000000ffL)); return this; } } diff --git a/libjava/gnu/java/nio/FileLockImpl.java b/libjava/gnu/java/nio/FileLockImpl.java index 088e552bea2..189e03ac81e 100644 --- a/libjava/gnu/java/nio/FileLockImpl.java +++ b/libjava/gnu/java/nio/FileLockImpl.java @@ -62,7 +62,8 @@ public class FileLockImpl extends FileLock public boolean isValid () { - return (released || !channel.isOpen ()); + return (released + || !channel ().isOpen ()); } private native void releaseImpl () throws IOException; diff --git a/libjava/java/nio/Buffer.java b/libjava/java/nio/Buffer.java index 7d291bedbc1..693765f3e46 100644 --- a/libjava/java/nio/Buffer.java +++ b/libjava/java/nio/Buffer.java @@ -57,7 +57,7 @@ public abstract class Buffer limit (limit); position (position); - if (mark > 0) + if (mark >= 0) { if (mark > pos) throw new IllegalArgumentException (); diff --git a/libjava/java/nio/ByteBuffer.java b/libjava/java/nio/ByteBuffer.java index 66c31ed76bb..cb743c799c7 100644 --- a/libjava/java/nio/ByteBuffer.java +++ b/libjava/java/nio/ByteBuffer.java @@ -63,6 +63,7 @@ public abstract class ByteBuffer extends Buffer this.backing_buffer = buffer; this.array_offset = offset; } + /** * Allocates a new direct byte buffer. */ diff --git a/libjava/java/nio/CharBuffer.java b/libjava/java/nio/CharBuffer.java index fbee6dfb9dd..f2fde710417 100644 --- a/libjava/java/nio/CharBuffer.java +++ b/libjava/java/nio/CharBuffer.java @@ -113,7 +113,7 @@ public abstract class CharBuffer extends Buffer buffer [i] = a.charAt (i); } - return wrap (buffer, offset, length); + return wrap (buffer, offset, length).asReadOnlyBuffer (); } /** @@ -426,7 +426,7 @@ public abstract class CharBuffer extends Buffer return new String (array (), position (), length ()); char[] buf = new char [length ()]; - get (buf); + get (position (), buf); return new String (buf); } |

