From 59fc63fcf808ba457739d34cf06fdf07272cc61f Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Thu, 17 Feb 2005 18:13:07 +0000 Subject: [PATCH] [multiple changes] 2005-02-17 Ito Kazumitsu * java/nio/ByteBufferImpl.java (compact): Set position and limit even if no bytes were moved. 2005-02-17 Michael Koch * java/nio/CharViewBufferImpl.java (compact): Likewise. * java/nio/DirectByteBufferImpl.java (compact): Likewise. * java/nio/DoubleViewBufferImpl.java (compact): Likewise. * java/nio/FloatViewBufferImpl.java (compact): Likewise. * java/nio/IntViewBufferImpl.java (compact): Likewise. * java/nio/LongViewBufferImpl.java (compact): Likewise. * java/nio/MappedByteBufferImpl.java (compact): Likewise. * java/nio/ShortViewBufferImpl.java (compact): Likewise. * java/nio/FloatBufferImpl.java (compact): Set position. * java/nio/CharBufferImpl.java (compact): Likewise. * java/nio/DoubleBufferImpl.java (compact): Likewise. * java/nio/IntBufferImpl.java (compact): Likewise. * java/nio/LongBufferImpl.java (compact): Likewise. * java/nio/ShortBufferImpl.java (compact): Likewise. 2005-02-17 Jeroen Frijters * java/nio/ByteBufferImpl.java, java/nio/CharBufferImpl.java, java/nio/DirectByteBufferImpl.java, java/nio/DoubleBufferImpl.java, java/nio/FloatBufferImpl.java, java/nio/IntBufferImpl.java, java/nio/LongBufferImpl.java, java/nio/MappedByteBufferImpl.java, java/nio/ShortBufferImpl.java (compact): Added explicit read-only check and invalidate mark. From-SVN: r95176 --- libjava/ChangeLog | 35 ++++++++++++++++++++++ libjava/java/nio/ByteBufferImpl.java | 7 +++++ libjava/java/nio/CharBufferImpl.java | 3 ++ libjava/java/nio/CharViewBufferImpl.java | 5 ++++ libjava/java/nio/DirectByteBufferImpl.java | 7 +++++ libjava/java/nio/DoubleBufferImpl.java | 3 ++ libjava/java/nio/DoubleViewBufferImpl.java | 5 ++++ libjava/java/nio/FloatBufferImpl.java | 3 ++ libjava/java/nio/FloatViewBufferImpl.java | 5 ++++ libjava/java/nio/IntBufferImpl.java | 3 ++ libjava/java/nio/IntViewBufferImpl.java | 5 ++++ libjava/java/nio/LongBufferImpl.java | 3 ++ libjava/java/nio/LongViewBufferImpl.java | 5 ++++ libjava/java/nio/MappedByteBufferImpl.java | 7 +++++ libjava/java/nio/ShortBufferImpl.java | 3 ++ libjava/java/nio/ShortViewBufferImpl.java | 5 ++++ 16 files changed, 104 insertions(+) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d2d055cb55f..ebf7fcecb5d 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,38 @@ +2005-02-17 Ito Kazumitsu + + * java/nio/ByteBufferImpl.java (compact): + Set position and limit even if no bytes were moved. + +2005-02-17 Michael Koch + + * java/nio/CharViewBufferImpl.java (compact): Likewise. + * java/nio/DirectByteBufferImpl.java (compact): Likewise. + * java/nio/DoubleViewBufferImpl.java (compact): Likewise. + * java/nio/FloatViewBufferImpl.java (compact): Likewise. + * java/nio/IntViewBufferImpl.java (compact): Likewise. + * java/nio/LongViewBufferImpl.java (compact): Likewise. + * java/nio/MappedByteBufferImpl.java (compact): Likewise. + * java/nio/ShortViewBufferImpl.java (compact): Likewise. + * java/nio/FloatBufferImpl.java (compact): Set position. + * java/nio/CharBufferImpl.java (compact): Likewise. + * java/nio/DoubleBufferImpl.java (compact): Likewise. + * java/nio/IntBufferImpl.java (compact): Likewise. + * java/nio/LongBufferImpl.java (compact): Likewise. + * java/nio/ShortBufferImpl.java (compact): Likewise. + +2005-02-17 Jeroen Frijters + + * java/nio/ByteBufferImpl.java, + java/nio/CharBufferImpl.java, + java/nio/DirectByteBufferImpl.java, + java/nio/DoubleBufferImpl.java, + java/nio/FloatBufferImpl.java, + java/nio/IntBufferImpl.java, + java/nio/LongBufferImpl.java, + java/nio/MappedByteBufferImpl.java, + java/nio/ShortBufferImpl.java + (compact): Added explicit read-only check and invalidate mark. + 2005-02-17 Michael Koch * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, diff --git a/libjava/java/nio/ByteBufferImpl.java b/libjava/java/nio/ByteBufferImpl.java index b1e6b1f50a7..d9f24627de0 100644 --- a/libjava/java/nio/ByteBufferImpl.java +++ b/libjava/java/nio/ByteBufferImpl.java @@ -112,6 +112,8 @@ final class ByteBufferImpl extends ByteBuffer public ByteBuffer compact () { + checkIfReadOnly(); + mark = -1; int pos = position(); if (pos > 0) { @@ -120,6 +122,11 @@ final class ByteBufferImpl extends ByteBuffer position(count); limit(capacity()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/CharBufferImpl.java b/libjava/java/nio/CharBufferImpl.java index 2ca44d94459..f9babe8287b 100644 --- a/libjava/java/nio/CharBufferImpl.java +++ b/libjava/java/nio/CharBufferImpl.java @@ -87,6 +87,8 @@ final class CharBufferImpl extends CharBuffer public CharBuffer compact () { + checkIfReadOnly(); + mark = -1; int copied = 0; while (remaining () > 0) @@ -96,6 +98,7 @@ final class CharBufferImpl extends CharBuffer } position (copied); + limit(capacity()); return this; } diff --git a/libjava/java/nio/CharViewBufferImpl.java b/libjava/java/nio/CharViewBufferImpl.java index 2701983ead5..25a2cf7972a 100644 --- a/libjava/java/nio/CharViewBufferImpl.java +++ b/libjava/java/nio/CharViewBufferImpl.java @@ -122,6 +122,11 @@ class CharViewBufferImpl extends CharBuffer position (count); limit (capacity ()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/DirectByteBufferImpl.java b/libjava/java/nio/DirectByteBufferImpl.java index 17f8dfa7a00..d2871641191 100644 --- a/libjava/java/nio/DirectByteBufferImpl.java +++ b/libjava/java/nio/DirectByteBufferImpl.java @@ -197,6 +197,8 @@ abstract class DirectByteBufferImpl extends ByteBuffer public ByteBuffer compact() { + checkIfReadOnly(); + mark = -1; int pos = position(); if (pos > 0) { @@ -205,6 +207,11 @@ abstract class DirectByteBufferImpl extends ByteBuffer position(count); limit(capacity()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/DoubleBufferImpl.java b/libjava/java/nio/DoubleBufferImpl.java index 2b5f32c4325..bad883c7d6c 100644 --- a/libjava/java/nio/DoubleBufferImpl.java +++ b/libjava/java/nio/DoubleBufferImpl.java @@ -80,6 +80,8 @@ final class DoubleBufferImpl extends DoubleBuffer public DoubleBuffer compact () { + checkIfReadOnly(); + mark = -1; int copied = 0; while (remaining () > 0) @@ -89,6 +91,7 @@ final class DoubleBufferImpl extends DoubleBuffer } position (copied); + limit(capacity()); return this; } diff --git a/libjava/java/nio/DoubleViewBufferImpl.java b/libjava/java/nio/DoubleViewBufferImpl.java index 276e2757045..d47c96463f4 100644 --- a/libjava/java/nio/DoubleViewBufferImpl.java +++ b/libjava/java/nio/DoubleViewBufferImpl.java @@ -120,6 +120,11 @@ final class DoubleViewBufferImpl extends DoubleBuffer position (count); limit (capacity ()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/FloatBufferImpl.java b/libjava/java/nio/FloatBufferImpl.java index aae5efc7d9f..6f552cfabe3 100644 --- a/libjava/java/nio/FloatBufferImpl.java +++ b/libjava/java/nio/FloatBufferImpl.java @@ -80,6 +80,8 @@ final class FloatBufferImpl extends FloatBuffer public FloatBuffer compact () { + checkIfReadOnly(); + mark = -1; int copied = 0; while (remaining () > 0) @@ -89,6 +91,7 @@ final class FloatBufferImpl extends FloatBuffer } position (copied); + limit(capacity()); return this; } diff --git a/libjava/java/nio/FloatViewBufferImpl.java b/libjava/java/nio/FloatViewBufferImpl.java index 3dd0736fb49..5d074b5bed3 100644 --- a/libjava/java/nio/FloatViewBufferImpl.java +++ b/libjava/java/nio/FloatViewBufferImpl.java @@ -120,6 +120,11 @@ final class FloatViewBufferImpl extends FloatBuffer position (count); limit (capacity ()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/IntBufferImpl.java b/libjava/java/nio/IntBufferImpl.java index 966fd488222..6b22d40fb21 100644 --- a/libjava/java/nio/IntBufferImpl.java +++ b/libjava/java/nio/IntBufferImpl.java @@ -80,6 +80,8 @@ final class IntBufferImpl extends IntBuffer public IntBuffer compact () { + checkIfReadOnly(); + mark = -1; int copied = 0; while (remaining () > 0) @@ -89,6 +91,7 @@ final class IntBufferImpl extends IntBuffer } position (copied); + limit(capacity()); return this; } diff --git a/libjava/java/nio/IntViewBufferImpl.java b/libjava/java/nio/IntViewBufferImpl.java index ff8b27be1a4..77b04a8c3c0 100644 --- a/libjava/java/nio/IntViewBufferImpl.java +++ b/libjava/java/nio/IntViewBufferImpl.java @@ -120,6 +120,11 @@ final class IntViewBufferImpl extends IntBuffer position (count); limit (capacity ()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/LongBufferImpl.java b/libjava/java/nio/LongBufferImpl.java index b7497fa3d92..e82f7749cd5 100644 --- a/libjava/java/nio/LongBufferImpl.java +++ b/libjava/java/nio/LongBufferImpl.java @@ -80,6 +80,8 @@ final class LongBufferImpl extends LongBuffer public LongBuffer compact () { + checkIfReadOnly(); + mark = -1; int copied = 0; while (remaining () > 0) @@ -89,6 +91,7 @@ final class LongBufferImpl extends LongBuffer } position (copied); + limit(capacity()); return this; } diff --git a/libjava/java/nio/LongViewBufferImpl.java b/libjava/java/nio/LongViewBufferImpl.java index bfa64d0ad9a..e2054757871 100644 --- a/libjava/java/nio/LongViewBufferImpl.java +++ b/libjava/java/nio/LongViewBufferImpl.java @@ -120,6 +120,11 @@ final class LongViewBufferImpl extends LongBuffer position (count); limit (capacity ()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/MappedByteBufferImpl.java b/libjava/java/nio/MappedByteBufferImpl.java index 63e0225bc51..fdb64c5bb0f 100644 --- a/libjava/java/nio/MappedByteBufferImpl.java +++ b/libjava/java/nio/MappedByteBufferImpl.java @@ -117,6 +117,8 @@ final class MappedByteBufferImpl extends MappedByteBuffer public ByteBuffer compact() { + checkIfReadOnly(); + mark = -1; int pos = position(); if (pos > 0) { @@ -126,6 +128,11 @@ final class MappedByteBufferImpl extends MappedByteBuffer position(count); limit(capacity()); } + else + { + position(limit()); + limit(capacity()); + } return this; } diff --git a/libjava/java/nio/ShortBufferImpl.java b/libjava/java/nio/ShortBufferImpl.java index 5d4eec2ff55..05424322b27 100644 --- a/libjava/java/nio/ShortBufferImpl.java +++ b/libjava/java/nio/ShortBufferImpl.java @@ -80,6 +80,8 @@ final class ShortBufferImpl extends ShortBuffer public ShortBuffer compact () { + checkIfReadOnly(); + mark = -1; int copied = 0; while (remaining () > 0) @@ -89,6 +91,7 @@ final class ShortBufferImpl extends ShortBuffer } position (copied); + limit(capacity()); return this; } diff --git a/libjava/java/nio/ShortViewBufferImpl.java b/libjava/java/nio/ShortViewBufferImpl.java index acd6c233d07..f884ed54244 100644 --- a/libjava/java/nio/ShortViewBufferImpl.java +++ b/libjava/java/nio/ShortViewBufferImpl.java @@ -120,6 +120,11 @@ final class ShortViewBufferImpl extends ShortBuffer position (count); limit (capacity ()); } + else + { + position(limit()); + limit(capacity()); + } return this; } -- 2.30.2