aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@redhat.com>2003-07-18 19:20:33 +0000
committerGraydon Hoare <graydon@gcc.gnu.org>2003-07-18 19:20:33 +0000
commit9e508cc4703391622b221a3a7aed00938be9f2ba (patch)
treea1aabeff099d1c04105b8a5b341a1349788466fa /libjava
parent0595d388a4b11459dc47c0bebf7b8895f8e9d331 (diff)
downloadgcc-9e508cc4703391622b221a3a7aed00938be9f2ba.zip
gcc-9e508cc4703391622b221a3a7aed00938be9f2ba.tar.gz
gcc-9e508cc4703391622b221a3a7aed00938be9f2ba.tar.bz2
[ ChangeLog ]
2003-07-18 Graydon Hoare <graydon@redhat.com> * java/awt/geom/CubicCurve2D.java, java/awt/geom/Line2D.java, java/awt/geom/QuadCurve2D.java, java/awt/geom/Rectangle2D.java: Fix path some calculations, make path iterators follow a consistent style. From-SVN: r69567
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/java/awt/geom/CubicCurve2D.java54
-rw-r--r--libjava/java/awt/geom/Line2D.java4
-rw-r--r--libjava/java/awt/geom/QuadCurve2D.java52
-rw-r--r--libjava/java/awt/geom/Rectangle2D.java2
5 files changed, 69 insertions, 52 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 3adf7a5..e654650 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,12 @@
+2003-07-18 Graydon Hoare <graydon@redhat.com>
+
+ * java/awt/geom/CubicCurve2D.java,
+ java/awt/geom/Line2D.java,
+ java/awt/geom/QuadCurve2D.java,
+ java/awt/geom/Rectangle2D.java:
+ Fix path some calculations, make path iterators follow
+ a consistent style.
+
2003-07-18 Mark Wielaard <mark@klomp.org>
* java/util/logging/Handler.java (isLoggable): Check record level
diff --git a/libjava/java/awt/geom/CubicCurve2D.java b/libjava/java/awt/geom/CubicCurve2D.java
index 2d303c7..2bc0b35 100644
--- a/libjava/java/awt/geom/CubicCurve2D.java
+++ b/libjava/java/awt/geom/CubicCurve2D.java
@@ -204,7 +204,7 @@ public abstract class CubicCurve2D implements Shape, Cloneable
return new PathIterator()
{
/** Current coordinate. */
- private int current;
+ private int current = 0;
public int getWindingRule()
{
@@ -213,7 +213,7 @@ public abstract class CubicCurve2D implements Shape, Cloneable
public boolean isDone()
{
- return current < 2;
+ return current >= 2;
}
public void next()
@@ -223,52 +223,56 @@ public abstract class CubicCurve2D implements Shape, Cloneable
public int currentSegment(float[] coords)
{
- if (current == 0)
+ int result;
+ switch (current)
{
+ case 0:
coords[0] = (float) getX1();
coords[1] = (float) getY1();
- if (at != null)
- at.transform(coords, 0, coords, 0, 1);
- return SEG_MOVETO;
- }
- if (current == 1)
- {
+ result = SEG_MOVETO;
+ break;
+ case 1:
coords[0] = (float) getCtrlX1();
coords[1] = (float) getCtrlY1();
coords[2] = (float) getCtrlX2();
coords[3] = (float) getCtrlY2();
coords[4] = (float) getX2();
coords[5] = (float) getY2();
- if (at != null)
- at.transform(coords, 0, coords, 0, 3);
- return SEG_CUBICTO;
+ result = SEG_CUBICTO;
+ break;
+ default:
+ throw new NoSuchElementException("cubic iterator out of bounds");
}
- throw new NoSuchElementException("cubic iterator out of bounds");
+ if (at != null)
+ at.transform(coords, 0, coords, 0, 3);
+ return result;
}
public int currentSegment(double[] coords)
{
- if (current == 0)
+ int result;
+ switch (current)
{
+ case 0:
coords[0] = getX1();
coords[1] = getY1();
- if (at != null)
- at.transform(coords, 0, coords, 0, 1);
- return SEG_MOVETO;
- }
- if (current == 1)
- {
+ result = SEG_MOVETO;
+ break;
+ case 1:
coords[0] = getCtrlX1();
coords[1] = getCtrlY1();
coords[2] = getCtrlX2();
coords[3] = getCtrlY2();
coords[4] = getX2();
coords[5] = getY2();
- if (at != null)
- at.transform(coords, 0, coords, 0, 3);
- return SEG_CUBICTO;
- }
- throw new NoSuchElementException("cubic iterator out of bounds");
+ result = SEG_CUBICTO;
+ break;
+ default:
+ throw new NoSuchElementException("cubic iterator out of bounds");
+ }
+ if (at != null)
+ at.transform(coords, 0, coords, 0, 3);
+ return result;
}
};
}
diff --git a/libjava/java/awt/geom/Line2D.java b/libjava/java/awt/geom/Line2D.java
index d2dd65c..15b2eca 100644
--- a/libjava/java/awt/geom/Line2D.java
+++ b/libjava/java/awt/geom/Line2D.java
@@ -668,7 +668,7 @@ public abstract class Line2D implements Shape, Cloneable
return new PathIterator()
{
/** Current coordinate. */
- private int current;
+ private int current = 0;
public int getWindingRule()
{
@@ -677,7 +677,7 @@ public abstract class Line2D implements Shape, Cloneable
public boolean isDone()
{
- return current < 2;
+ return current >= 2;
}
public void next()
diff --git a/libjava/java/awt/geom/QuadCurve2D.java b/libjava/java/awt/geom/QuadCurve2D.java
index 05748fc..6aed059 100644
--- a/libjava/java/awt/geom/QuadCurve2D.java
+++ b/libjava/java/awt/geom/QuadCurve2D.java
@@ -215,7 +215,7 @@ public abstract class QuadCurve2D implements Shape, Cloneable
return new PathIterator()
{
/** Current coordinate. */
- private int current;
+ private int current = 0;
public int getWindingRule()
{
@@ -224,7 +224,7 @@ public abstract class QuadCurve2D implements Shape, Cloneable
public boolean isDone()
{
- return current < 2;
+ return current >= 2;
}
public void next()
@@ -234,48 +234,52 @@ public abstract class QuadCurve2D implements Shape, Cloneable
public int currentSegment(float[] coords)
{
- if (current == 0)
+ int result;
+ switch (current)
{
+ case 0:
coords[0] = (float) getX1();
coords[1] = (float) getY1();
- if (at != null)
- at.transform(coords, 0, coords, 0, 1);
- return SEG_MOVETO;
- }
- if (current == 1)
- {
+ result = SEG_MOVETO;
+ break;
+ case 1:
coords[0] = (float) getCtrlX();
coords[1] = (float) getCtrlY();
coords[2] = (float) getX2();
coords[3] = (float) getY2();
- if (at != null)
- at.transform(coords, 0, coords, 0, 2);
- return SEG_QUADTO;
+ result = SEG_QUADTO;
+ break;
+ default:
+ throw new NoSuchElementException("quad iterator out of bounds");
}
- throw new NoSuchElementException("quad iterator out of bounds");
+ if (at != null)
+ at.transform(coords, 0, coords, 0, 2);
+ return result;
}
public int currentSegment(double[] coords)
{
- if (current == 0)
+ int result;
+ switch (current)
{
+ case 0:
coords[0] = getX1();
coords[1] = getY1();
- if (at != null)
- at.transform(coords, 0, coords, 0, 1);
- return SEG_MOVETO;
- }
- if (current == 1)
- {
+ result = SEG_MOVETO;
+ break;
+ case 1:
coords[0] = getCtrlX();
coords[1] = getCtrlY();
coords[2] = getX2();
coords[3] = getY2();
- if (at != null)
- at.transform(coords, 0, coords, 0, 2);
- return SEG_QUADTO;
+ result = SEG_QUADTO;
+ break;
+ default:
+ throw new NoSuchElementException("quad iterator out of bounds");
}
- throw new NoSuchElementException("quad iterator out of bounds");
+ if (at != null)
+ at.transform(coords, 0, coords, 0, 2);
+ return result;
}
};
}
diff --git a/libjava/java/awt/geom/Rectangle2D.java b/libjava/java/awt/geom/Rectangle2D.java
index e0a278a..e63e1ba 100644
--- a/libjava/java/awt/geom/Rectangle2D.java
+++ b/libjava/java/awt/geom/Rectangle2D.java
@@ -395,7 +395,7 @@ public abstract class Rectangle2D extends RectangularShape
return new PathIterator()
{
/** Current coordinate. */
- private int current = (maxx >= minx && maxy >= miny) ? 6 : 0;
+ private int current = (maxx <= minx && maxy <= miny) ? 6 : 0;
public int getWindingRule()
{