diff options
author | Michael Koch <konqueror@gmx.de> | 2003-05-19 06:59:23 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-05-19 06:59:23 +0000 |
commit | 10832fce7c6b2de6ef8af9b1f7a123dfdb6fb7a9 (patch) | |
tree | 2bc55e0ef3fca053d995f689e0812505f3e152b2 /libjava | |
parent | 307b599c91ee93049fd69228b9d59b6ea2e030ef (diff) | |
download | gcc-10832fce7c6b2de6ef8af9b1f7a123dfdb6fb7a9.zip gcc-10832fce7c6b2de6ef8af9b1f7a123dfdb6fb7a9.tar.gz gcc-10832fce7c6b2de6ef8af9b1f7a123dfdb6fb7a9.tar.bz2 |
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.
From-SVN: r66946
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 991730d..0846261 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 cc7fabb..f9de8c7 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 47b76bb..d214f0c 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 088e552..189e03a 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 7d291be..693765f 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 66c31ed..cb743c7 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 fbee6df..f2fde71 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); } |