summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-04 21:31:30 +0000
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-04 21:31:30 +0000
commita221385cec60e1ba526d292898aeb99953891407 (patch)
tree7281d10d42a1f2c51d91d3923158d74d7a9511ff /libjava
parenta6645eaed032b9d5277b199e005974b5dab19c0e (diff)
downloadgcc-a221385cec60e1ba526d292898aeb99953891407.tar.gz
2004-05-04 Michael Koch <konqueror@gmx.de>
* java/nio/ByteBuffer.java, java/nio/CharBuffer.java, java/nio/DoubleBuffer.java, java/nio/FloatBuffer.java, java/nio/IntBuffer.java, java/nio/LongBuffer.java, java/nio/ShortBuffer.java: (compareTo): Fixed bogus implementation in all buffer classes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81489 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog11
-rw-r--r--libjava/java/nio/ByteBuffer.java41
-rw-r--r--libjava/java/nio/CharBuffer.java43
-rw-r--r--libjava/java/nio/DoubleBuffer.java43
-rw-r--r--libjava/java/nio/FloatBuffer.java43
-rw-r--r--libjava/java/nio/IntBuffer.java43
-rw-r--r--libjava/java/nio/LongBuffer.java43
-rw-r--r--libjava/java/nio/ShortBuffer.java43
8 files changed, 143 insertions, 167 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 76fe4f0e07d..baf4d6ac743 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,14 @@
+2004-05-04 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/ByteBuffer.java,
+ java/nio/CharBuffer.java,
+ java/nio/DoubleBuffer.java,
+ java/nio/FloatBuffer.java,
+ java/nio/IntBuffer.java,
+ java/nio/LongBuffer.java,
+ java/nio/ShortBuffer.java:
+ (compareTo): Fixed bogus implementation in all buffer classes.
+
2004-05-04 Ingo Proetel <proetel@aicas.com>
* java/awt/image/ColorModel.java (getRGBdefault): Default ColorModel has
diff --git a/libjava/java/nio/ByteBuffer.java b/libjava/java/nio/ByteBuffer.java
index 276b2dbcb81..8b43da57910 100644
--- a/libjava/java/nio/ByteBuffer.java
+++ b/libjava/java/nio/ByteBuffer.java
@@ -293,32 +293,27 @@ public abstract class ByteBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- ByteBuffer a = (ByteBuffer) obj;
+ ByteBuffer other = (ByteBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ byte a = get(pos_this++);
+ byte b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**
diff --git a/libjava/java/nio/CharBuffer.java b/libjava/java/nio/CharBuffer.java
index 3d488bad345..416ca834988 100644
--- a/libjava/java/nio/CharBuffer.java
+++ b/libjava/java/nio/CharBuffer.java
@@ -1,5 +1,5 @@
/* CharBuffer.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -310,32 +310,27 @@ public abstract class CharBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- CharBuffer a = (CharBuffer) obj;
+ CharBuffer other = (CharBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ char a = get(pos_this++);
+ char b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**
diff --git a/libjava/java/nio/DoubleBuffer.java b/libjava/java/nio/DoubleBuffer.java
index d669c2138c4..1ad8baede02 100644
--- a/libjava/java/nio/DoubleBuffer.java
+++ b/libjava/java/nio/DoubleBuffer.java
@@ -1,5 +1,5 @@
/* DoubleBuffer.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -265,32 +265,27 @@ public abstract class DoubleBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- DoubleBuffer a = (DoubleBuffer) obj;
+ DoubleBuffer other = (DoubleBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ double a = get(pos_this++);
+ double b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**
diff --git a/libjava/java/nio/FloatBuffer.java b/libjava/java/nio/FloatBuffer.java
index 0c7b04dd0f5..ab87b7f898f 100644
--- a/libjava/java/nio/FloatBuffer.java
+++ b/libjava/java/nio/FloatBuffer.java
@@ -1,5 +1,5 @@
/* FloatBuffer.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -265,32 +265,27 @@ public abstract class FloatBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- FloatBuffer a = (FloatBuffer) obj;
+ FloatBuffer other = (FloatBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ float a = get(pos_this++);
+ float b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**
diff --git a/libjava/java/nio/IntBuffer.java b/libjava/java/nio/IntBuffer.java
index 469a344ea71..52d822aa81d 100644
--- a/libjava/java/nio/IntBuffer.java
+++ b/libjava/java/nio/IntBuffer.java
@@ -1,5 +1,5 @@
/* IntBuffer.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -265,32 +265,27 @@ public abstract class IntBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- IntBuffer a = (IntBuffer) obj;
+ IntBuffer other = (IntBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ int a = get(pos_this++);
+ int b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**
diff --git a/libjava/java/nio/LongBuffer.java b/libjava/java/nio/LongBuffer.java
index 712e0b3b59a..1b420eb5ed4 100644
--- a/libjava/java/nio/LongBuffer.java
+++ b/libjava/java/nio/LongBuffer.java
@@ -1,5 +1,5 @@
/* LongBuffer.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -265,32 +265,27 @@ public abstract class LongBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- LongBuffer a = (LongBuffer) obj;
+ LongBuffer other = (LongBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ long a = get(pos_this++);
+ long b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**
diff --git a/libjava/java/nio/ShortBuffer.java b/libjava/java/nio/ShortBuffer.java
index 61097d04dd9..9f542769fac 100644
--- a/libjava/java/nio/ShortBuffer.java
+++ b/libjava/java/nio/ShortBuffer.java
@@ -1,5 +1,5 @@
/* ShortBuffer.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -265,32 +265,27 @@ public abstract class ShortBuffer extends Buffer
*/
public int compareTo (Object obj)
{
- ShortBuffer a = (ShortBuffer) obj;
+ ShortBuffer other = (ShortBuffer) obj;
- if (a.remaining () != remaining ())
- return 1;
-
- if (! hasArray () ||
- ! a.hasArray ())
- {
- return 1;
- }
-
- int r = remaining ();
- int i1 = position ();
- int i2 = a.position ();
-
- for (int i = 0; i < r; i++)
+ int num = Math.min(remaining(), other.remaining());
+ int pos_this = position();
+ int pos_other = other.position();
+
+ for (int count = 0; count < num; count++)
{
- int t = (int) (get (i1) - a.get (i2));
-
- if (t != 0)
- {
- return (int) t;
- }
+ short a = get(pos_this++);
+ short b = other.get(pos_other++);
+
+ if (a == b)
+ continue;
+
+ if (a < b)
+ return -1;
+
+ return 1;
}
-
- return 0;
+
+ return remaining() - other.remaining();
}
/**