Shouldn't Order2, lines 50,77 be "<Curve>"?
Ditto for Order3, lines 56,108?
I don't think we ever use these methods with any other type of Vector,
but I guess I can see that the choice you made might be a more general
choice.
diff --git a/src/share/classes/sun/awt/geom/AreaOp.java
b/src/share/classes/sun/awt/geom/AreaOp.java
--- a/src/share/classes/sun/awt/geom/AreaOp.java
+++ b/src/share/classes/sun/awt/geom/AreaOp.java
@@ -198,11 +198,8 @@
private Vector<Curve> pruneEdges(Vector<Edge> edges) {
int numedges = edges.size();
if (numedges < 2) {
- Vector<Curve> rt = new Vector<>();
- for (Edge edge: edges) {
- rt.add(edge.getCurve());
- }
- return rt;
+ // empty vector is expected with less than 2 edges
+ return new Vector<>();
}
Edge[] edgelist = edges.toArray(new Edge[numedges]);
Arrays.sort(edgelist, YXTopComparator);
diff --git a/src/share/classes/sun/awt/geom/Order2.java
b/src/share/classes/sun/awt/geom/Order2.java
--- a/src/share/classes/sun/awt/geom/Order2.java
+++ b/src/share/classes/sun/awt/geom/Order2.java
@@ -47,7 +47,7 @@
private double ycoeff1;
private double ycoeff2;
- public static void insert(Vector<? super Order2> curves, double
tmp[],
+ public static void insert(Vector<Curve> curves, double tmp[],
double x0, double y0,
double cx0, double cy0,
double x1, double y1,
@@ -74,7 +74,7 @@
tmp[i1 + 4], tmp[i1 + 5], direction);
}
- public static void addInstance(Vector<? super Order2> curves,
+ public static void addInstance(Vector<Curve> curves,
double x0, double y0,
double cx0, double cy0,
double x1, double y1,
diff --git a/src/share/classes/sun/awt/geom/Order3.java
b/src/share/classes/sun/awt/geom/Order3.java
--- a/src/share/classes/sun/awt/geom/Order3.java
+++ b/src/share/classes/sun/awt/geom/Order3.java
@@ -53,7 +53,7 @@
private double ycoeff2;
private double ycoeff3;
- public static void insert(Vector<? super Order3> curves, double
tmp[],
+ public static void insert(Vector<Curve> curves, double tmp[],
double x0, double y0,
double cx0, double cy0,
double cx1, double cy1,
@@ -105,7 +105,7 @@
}
}
- public static void addInstance(Vector<? super Order3> curves,
+ public static void addInstance(Vector<Curve> curves,
double x0, double y0,
double cx0, double cy0,
double cx1, double cy1,