Hi,

I've committed the attached patch to fix bug 23236.

Regards,
Jeroen

2005-08-05  Jeroen Frijters  <[EMAIL PROTECTED]>

        * java/io/ObjectInputStream.java
        (read(byte[],int,int)): Simplified and fixed bug 23236.
Index: java/io/ObjectInputStream.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/io/ObjectInputStream.java,v
retrieving revision 1.59
diff -u -r1.59 ObjectInputStream.java
--- java/io/ObjectInputStream.java      10 Jul 2005 17:41:36 -0000      1.59
+++ java/io/ObjectInputStream.java      5 Aug 2005 08:24:16 -0000
@@ -957,19 +957,13 @@
   {
     if (this.readDataFromBlock)
       {
-       if (this.blockDataPosition + length > this.blockDataBytes)
-         {
-           int remain = this.blockDataBytes - this.blockDataPosition;
-           if (remain != 0)
-             {
-               System.arraycopy(this.blockData, this.blockDataPosition,
-                                data, offset, remain);
-               offset += remain;
-               length -= remain;
-             }
-           readNextBlock ();
-         }
-
+        int remain = this.blockDataBytes - this.blockDataPosition;
+        if (remain == 0)
+          {
+            readNextBlock();
+            remain = this.blockDataBytes - this.blockDataPosition;
+          }
+        length = Math.min(length, remain);
        System.arraycopy(this.blockData, this.blockDataPosition,
                         data, offset, length);
        this.blockDataPosition += length;
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to