[multiple changes]
authorMichael Koch <mkoch@gcc.gnu.org>
Thu, 17 Feb 2005 18:13:07 +0000 (18:13 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Thu, 17 Feb 2005 18:13:07 +0000 (18:13 +0000)
2005-02-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>

* java/nio/ByteBufferImpl.java (compact):
Set position and limit even if no bytes were moved.

2005-02-17  Michael Koch  <konqueror@gmx.de>

* 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  <jeroen@frijters.net>

* 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

16 files changed:
libjava/ChangeLog
libjava/java/nio/ByteBufferImpl.java
libjava/java/nio/CharBufferImpl.java
libjava/java/nio/CharViewBufferImpl.java
libjava/java/nio/DirectByteBufferImpl.java
libjava/java/nio/DoubleBufferImpl.java
libjava/java/nio/DoubleViewBufferImpl.java
libjava/java/nio/FloatBufferImpl.java
libjava/java/nio/FloatViewBufferImpl.java
libjava/java/nio/IntBufferImpl.java
libjava/java/nio/IntViewBufferImpl.java
libjava/java/nio/LongBufferImpl.java
libjava/java/nio/LongViewBufferImpl.java
libjava/java/nio/MappedByteBufferImpl.java
libjava/java/nio/ShortBufferImpl.java
libjava/java/nio/ShortViewBufferImpl.java

index d2d055cb55f1adeba870b2c99472de83dffd83f0..ebf7fcecb5dc9636c3915a72476125186b02ac36 100644 (file)
@@ -1,3 +1,38 @@
+2005-02-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       * java/nio/ByteBufferImpl.java (compact):
+       Set position and limit even if no bytes were moved.
+
+2005-02-17  Michael Koch  <konqueror@gmx.de>
+
+       * 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  <jeroen@frijters.net>
+
+       * 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  <konqueror@gmx.de>
 
        * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
index b1e6b1f50a7d60aaea9858cc44f62432c7dcee87..d9f24627de0f419146d16dc4b5d4487aba400880 100644 (file)
@@ -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;
   }
   
index 2ca44d9445974f10572ce3a8a553ecc57ef094cc..f9babe8287b5f1ada08c430a47d4c6c2afd22d8d 100644 (file)
@@ -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;
   }
   
index 2701983ead530c08eb10b8dc9c9fa19473e6b45c..25a2cf7972aaff629c0764b9018cdcb62dc33e36 100644 (file)
@@ -122,6 +122,11 @@ class CharViewBufferImpl extends CharBuffer
         position (count);
         limit (capacity ());
       }
+    else
+      {
+       position(limit());
+       limit(capacity());
+      }
     return this;
   }
   
index 17f8dfa7a00ca1f9530de7d5ec4b3b79fd082129..d2871641191b528829cffc13f63c74643e1a3310 100644 (file)
@@ -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;
   }
 
index 2b5f32c43251ed9043aed09318bf8de27d2b0283..bad883c7d6cdf624ecc167b2e05128dec8b8ccb1 100644 (file)
@@ -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;
   }
   
index 276e275704528d9faec36e127a61bfc8d7bb3b44..d47c96463f4dbc7e00d0073bf2bd8f9fbf43172f 100644 (file)
@@ -120,6 +120,11 @@ final class DoubleViewBufferImpl extends DoubleBuffer
         position (count);
         limit (capacity ());
       }
+    else
+      {
+       position(limit());
+       limit(capacity());
+      }
     return this;
   }
   
index aae5efc7d9f4336510834426737f1fa0545dfd5f..6f552cfabe3e211748bd5960a7cc706b49a15729 100644 (file)
@@ -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;
   }
   
index 3dd0736fb491cc0afb181b043ee346a90319a0b6..5d074b5bed352be3ff45b9cdfceb33320377422f 100644 (file)
@@ -120,6 +120,11 @@ final class FloatViewBufferImpl extends FloatBuffer
         position (count);
         limit (capacity ());
       }
+    else
+      {
+       position(limit());
+       limit(capacity());
+      }
     return this;
   }
   
index 966fd48822257f1f761bf8f8c08c2f03ce868ee8..6b22d40fb213917820a279086dc4988232e6afa3 100644 (file)
@@ -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;
   }
   
index ff8b27be1a48dce903d1c5863254e985377d8020..77b04a8c3c05359ec5505a7febb0ad72bee70353 100644 (file)
@@ -120,6 +120,11 @@ final class IntViewBufferImpl extends IntBuffer
         position (count);
         limit (capacity ());
       }
+    else
+      {
+       position(limit());
+       limit(capacity());
+      }
     return this;
   }
   
index b7497fa3d92514ae1b0dcfe412cf95fd0a8326b0..e82f7749cd51e37d97f2b0c57fef2de5eb984688 100644 (file)
@@ -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;
   }
   
index bfa64d0ad9a37a9352342cbf36cc7a26e9310d09..e2054757871a06c6572a6ff3f6e1be4c9113c9df 100644 (file)
@@ -120,6 +120,11 @@ final class LongViewBufferImpl extends LongBuffer
         position (count);
         limit (capacity ());
       }
+    else
+      {
+       position(limit());
+       limit(capacity());
+      }
     return this;
   }
   
index 63e0225bc511d244eee243125872bf439f589f55..fdb64c5bb0f115baed244c05ac4e6a0a6b52e07c 100644 (file)
@@ -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;
   }
 
index 5d4eec2ff55ce53490795be429271136b9c3c92a..05424322b27c26a2206912bcfce4747204c9fff6 100644 (file)
@@ -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;
   }
   
index acd6c233d07902159ad80dbf91b668343de164b4..f884ed54244c630ae4a262650bb6a8611e8b03a0 100644 (file)
@@ -120,6 +120,11 @@ final class ShortViewBufferImpl extends ShortBuffer
         position (count);
         limit (capacity ());
       }
+    else
+      {
+       position(limit());
+       limit(capacity());
+      }
     return this;
   }