I found quite a few clone methods are broken in various classes, I'm trying to fix them all.
This patch addresses gnu.java.awt.java2d
While there, I have also fixed an unused import in java.awt.BasicStroke
(referenced by classes in java2d)
Before committing, I wait for approval,
Mario
2006-07-10 Mario Torre <[EMAIL PROTECTED]>
* java/awt/BasicStroke.java: Removed unused import.
* gnu/java/awt/java2d/CubicSegment.java (clone): Fixed.
* gnu/java/awt/java2d/LineSegment.java (clone): Fixed.
* gnu/java/awt/java2d/QuadSegment.java (clone): Fixed.
--
Lima Software, SO.PR.IND. s.r.l.
http://www.limasoftware.net/
pgp key: http://subkeys.pgp.net/
Please, support open standards:
http://opendocumentfellowship.org/petition/
http://www.nosoftwarepatents.com/
Index: gnu/java/awt/java2d/CubicSegment.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/java2d/CubicSegment.java,v
retrieving revision 1.1
diff -u -r1.1 CubicSegment.java
--- gnu/java/awt/java2d/CubicSegment.java 24 Apr 2006 14:37:23 -0000 1.1
+++ gnu/java/awt/java2d/CubicSegment.java 10 Jul 2006 12:11:43 -0000
@@ -78,8 +78,21 @@
*/
public Object clone()
{
- return new CubicSegment(P1.getX(), P1.getY(), cp1.getX(), cp1.getY(),
- cp2.getX(), cp2.getY(), P2.getX(), P2.getY());
+ CubicSegment segment = null;
+
+ try {
+ segment = (CubicSegment) super.clone();
+
+ segment.P1 = (Point2D) P1.clone();
+ segment.P2 = (Point2D) P2.clone();
+ segment.cp1 = (Point2D) cp1.clone();
+ segment.cp2 = (Point2D) cp2.clone();
+
+ } catch (CloneNotSupportedException cnse) {
+ throw new InternalError(cnse.toString());
+ }
+
+ return segment;
}
/**
@@ -100,7 +113,6 @@
double[] p1 = normal(x0, y0, x1, y1);
double[] p2 = normal(x2, y2, x3, y3);
-
// FIXME: Doesn't compile.
// return new Segment[]{s1, s2};
return new Segment[0];
Index: gnu/java/awt/java2d/LineSegment.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/java2d/LineSegment.java,v
retrieving revision 1.1
diff -u -r1.1 LineSegment.java
--- gnu/java/awt/java2d/LineSegment.java 24 Apr 2006 14:37:23 -0000 1.1
+++ gnu/java/awt/java2d/LineSegment.java 10 Jul 2006 12:11:43 -0000
@@ -62,7 +62,18 @@
*/
public Object clone()
{
- return new LineSegment(P1, P2);
+ LineSegment segment = null;
+
+ try {
+ segment = (LineSegment) super.clone();
+ segment.P1 = (Point2D) P1.clone();
+ segment.P2 = (Point2D) P2.clone();
+
+ } catch (CloneNotSupportedException cnse) {
+ throw new InternalError(cnse.toString());
+ }
+
+ return segment;
}
/**
Index: gnu/java/awt/java2d/QuadSegment.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/java2d/QuadSegment.java,v
retrieving revision 1.1
diff -u -r1.1 QuadSegment.java
--- gnu/java/awt/java2d/QuadSegment.java 24 Apr 2006 14:37:23 -0000 1.1
+++ gnu/java/awt/java2d/QuadSegment.java 10 Jul 2006 12:11:43 -0000
@@ -88,8 +88,20 @@
*/
public Object clone()
{
- return new QuadSegment(P1.getX(), P1.getY(), cp.getX(), cp.getY(),
- P2.getX(), P2.getY());
+ QuadSegment segment = null;
+
+ try {
+ segment = (QuadSegment) super.clone();
+
+ segment.P1 = (Point2D) P1.clone();
+ segment.P2 = (Point2D) P2.clone();
+ segment.cp = (Point2D) cp.clone();
+
+ } catch (CloneNotSupportedException cnse) {
+ throw new InternalError(cnse.toString());
+ }
+
+ return segment;
}
/**
Index: java/awt/BasicStroke.java
===================================================================
RCS file: /sources/classpath/classpath/java/awt/BasicStroke.java,v
retrieving revision 1.13
diff -u -r1.13 BasicStroke.java
--- java/awt/BasicStroke.java 15 Jun 2006 18:09:25 -0000 1.13
+++ java/awt/BasicStroke.java 10 Jul 2006 12:11:47 -0000
@@ -43,7 +43,6 @@
import gnu.java.awt.java2d.QuadSegment;
import gnu.java.awt.java2d.Segment;
-import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
signature.asc
Description: Questa รจ una parte del messaggio firmata digitalmente
