[OpenJDK 2D-Dev] Remove warnings
Phil Race
Phil.Race at Sun.COM
Thu Sep 27 19:18:53 UTC 2007
Hi,
Roman Kennke wrote:
> Today I took some time studying the J2D code [1] and came across a bunch
> of warnings that I thought I'd remove (only in sun/java2d/x11 for now):
>
> - Remove unused imports, makes code slightly cleaner.
Someone internally did a sweep recently looking for unused imports but so
far as I can tell these weren't covered.
> - Access static fields like SunGraphics2D.XYZ rather than sg2d.XYZ.
> Better style generally and avoids potential programming error (rarely
> though).
I suspect that this may have been a mixture of a personal stylistic
choice and keeping the line lengths shorter to avoid wrapping or exceeding
the 80 chars in our coding standards. Anyone know better?
> - Add @Override to overriding methods. In case the superclass method
> changes name and/or signature, this triggers a compiler error, thus
> preventing accidental problems when refactoring.
Most likely we could find thousands of such cases which pre-date
annotations. Does anyone know if there is a tool to (semi)automate this?
-phil.
> - Remove some unnecessary casts to String. Makes code slightly cleaner.
>
> Find the patch attached. Feel free to include it in OpenJDK if you like.
>
> Cheers, Roman
>
>
> ------------------------------------------------------------------------
>
> Index: j2se/src/solaris/classes/sun/java2d/x11/X11Renderer.java
> ===================================================================
> --- j2se/src/solaris/classes/sun/java2d/x11/X11Renderer.java (Revision 252)
> +++ j2se/src/solaris/classes/sun/java2d/x11/X11Renderer.java (Arbeitskopie)
> @@ -28,12 +28,9 @@
> import java.awt.Polygon;
> import java.awt.Shape;
> import java.awt.geom.AffineTransform;
> -import java.awt.geom.PathIterator;
> import java.awt.geom.Path2D;
> -import java.awt.geom.IllegalPathStateException;
> import sun.awt.SunToolkit;
> import sun.java2d.SunGraphics2D;
> -import sun.java2d.SurfaceData;
> import sun.java2d.loops.GraphicsPrimitive;
> import sun.java2d.pipe.Region;
> import sun.java2d.pipe.PixelDrawPipe;
> @@ -299,7 +296,7 @@
> private void doPath(SunGraphics2D sg2d, Shape s, boolean isFill) {
> Path2D.Float p2df;
> int transx, transy;
> - if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) {
> + if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
> if (s instanceof Path2D.Float) {
> p2df = (Path2D.Float)s;
> } else {
> @@ -323,10 +320,10 @@
> }
>
> public void draw(SunGraphics2D sg2d, Shape s) {
> - if (sg2d.strokeState == sg2d.STROKE_THIN) {
> + if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
> // Delegate to drawPolygon() if possible...
> if (s instanceof Polygon &&
> - sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE)
> + sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE)
> {
> Polygon p = (Polygon) s;
> drawPolygon(sg2d, p.xpoints, p.ypoints, p.npoints);
> @@ -336,7 +333,7 @@
> // Otherwise we will use drawPath() for
> // high-quality thin paths.
> doPath(sg2d, s, false);
> - } else if (sg2d.strokeState < sg2d.STROKE_CUSTOM) {
> + } else if (sg2d.strokeState < SunGraphics2D.STROKE_CUSTOM) {
> // REMIND: X11 can handle uniform scaled wide lines
> // and dashed lines itself if we set the appropriate
> // XGC attributes (TBD).
> @@ -360,10 +357,10 @@
> }
>
> public void fill(SunGraphics2D sg2d, Shape s) {
> - if (sg2d.strokeState == sg2d.STROKE_THIN) {
> + if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
> // Delegate to fillPolygon() if possible...
> if (s instanceof Polygon &&
> - sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE)
> + sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE)
> {
> Polygon p = (Polygon) s;
> fillPolygon(sg2d, p.xpoints, p.ypoints, p.npoints);
> @@ -378,7 +375,7 @@
>
> AffineTransform at;
> int transx, transy;
> - if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE) {
> + if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
> // Transform (translation) will be done by XFillSpans
> at = null;
> transx = sg2d.transX;
> @@ -419,18 +416,21 @@
> int w, int h);
>
> public static class X11TracingRenderer extends X11Renderer {
> + @Override
> void XDrawLine(long pXSData, long xgc,
> int x1, int y1, int x2, int y2)
> {
> GraphicsPrimitive.tracePrimitive("X11DrawLine");
> super.XDrawLine(pXSData, xgc, x1, y1, x2, y2);
> }
> + @Override
> void XDrawRect(long pXSData, long xgc,
> int x, int y, int w, int h)
> {
> GraphicsPrimitive.tracePrimitive("X11DrawRect");
> super.XDrawRect(pXSData, xgc, x, y, w, h);
> }
> + @Override
> void XDrawRoundRect(long pXSData, long xgc,
> int x, int y, int w, int h,
> int arcW, int arcH)
> @@ -438,12 +438,14 @@
> GraphicsPrimitive.tracePrimitive("X11DrawRoundRect");
> super.XDrawRoundRect(pXSData, xgc, x, y, w, h, arcW, arcH);
> }
> + @Override
> void XDrawOval(long pXSData, long xgc,
> int x, int y, int w, int h)
> {
> GraphicsPrimitive.tracePrimitive("X11DrawOval");
> super.XDrawOval(pXSData, xgc, x, y, w, h);
> }
> + @Override
> void XDrawArc(long pXSData, long xgc,
> int x, int y, int w, int h,
> int angleStart, int angleExtent)
> @@ -452,6 +454,7 @@
> super.XDrawArc(pXSData, xgc,
> x, y, w, h, angleStart, angleExtent);
> }
> + @Override
> void XDrawPoly(long pXSData, long xgc,
> int transx, int transy,
> int[] xpoints, int[] ypoints,
> @@ -461,6 +464,7 @@
> super.XDrawPoly(pXSData, xgc, transx, transy,
> xpoints, ypoints, npoints, isclosed);
> }
> + @Override
> void XDoPath(SunGraphics2D sg2d, long pXSData, long xgc,
> int transX, int transY, Path2D.Float p2df,
> boolean isFill)
> @@ -470,12 +474,14 @@
> "X11DrawPath");
> super.XDoPath(sg2d, pXSData, xgc, transX, transY, p2df, isFill);
> }
> + @Override
> void XFillRect(long pXSData, long xgc,
> int x, int y, int w, int h)
> {
> GraphicsPrimitive.tracePrimitive("X11FillRect");
> super.XFillRect(pXSData, xgc, x, y, w, h);
> }
> + @Override
> void XFillRoundRect(long pXSData, long xgc,
> int x, int y, int w, int h,
> int arcW, int arcH)
> @@ -483,12 +489,14 @@
> GraphicsPrimitive.tracePrimitive("X11FillRoundRect");
> super.XFillRoundRect(pXSData, xgc, x, y, w, h, arcW, arcH);
> }
> + @Override
> void XFillOval(long pXSData, long xgc,
> int x, int y, int w, int h)
> {
> GraphicsPrimitive.tracePrimitive("X11FillOval");
> super.XFillOval(pXSData, xgc, x, y, w, h);
> }
> + @Override
> void XFillArc(long pXSData, long xgc,
> int x, int y, int w, int h,
> int angleStart, int angleExtent)
> @@ -497,6 +505,7 @@
> super.XFillArc(pXSData, xgc,
> x, y, w, h, angleStart, angleExtent);
> }
> + @Override
> void XFillPoly(long pXSData, long xgc,
> int transx, int transy,
> int[] xpoints, int[] ypoints,
> @@ -506,6 +515,7 @@
> super.XFillPoly(pXSData, xgc,
> transx, transy, xpoints, ypoints, npoints);
> }
> + @Override
> void XFillSpans(long pXSData, long xgc,
> SpanIterator si, long iterator, int transx, int transy)
> {
> @@ -513,6 +523,7 @@
> super.XFillSpans(pXSData, xgc,
> si, iterator, transx, transy);
> }
> + @Override
> void devCopyArea(long sdOps, long xgc,
> int srcx, int srcy,
> int dstx, int dsty,
> Index: j2se/src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java
> ===================================================================
> --- j2se/src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java (Revision 252)
> +++ j2se/src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java (Arbeitskopie)
> @@ -79,6 +79,7 @@
> super(srcType, CompositeType.SrcNoEa, dstType);
> }
>
> + @Override
> public void BlitBg(SurfaceData src, SurfaceData dst,
> Composite comp, Region clip, Color bgColor,
> int sx, int sy,
> Index: j2se/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java
> ===================================================================
> --- j2se/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java (Revision 252)
> +++ j2se/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java (Arbeitskopie)
> @@ -27,20 +27,17 @@
>
> import java.awt.GraphicsDevice;
> import java.awt.GraphicsEnvironment;
> -import java.awt.Color;
> import java.awt.Composite;
> import java.awt.Rectangle;
> import java.awt.GraphicsConfiguration;
> import java.awt.Image;
> import java.awt.color.ColorSpace;
> import java.awt.Transparency;
> -import java.awt.image.BufferedImage;
> import java.awt.image.ColorModel;
> import java.awt.image.ComponentColorModel;
> import java.awt.image.DirectColorModel;
> import java.awt.image.IndexColorModel;
> import java.awt.image.Raster;
> -import java.awt.peer.ComponentPeer;
>
> import sun.awt.SunHints;
> import sun.awt.SunToolkit;
> @@ -57,7 +54,6 @@
> import sun.java2d.loops.RenderLoops;
> import sun.java2d.loops.GraphicsPrimitive;
> import sun.java2d.loops.XORComposite;
> -import sun.java2d.loops.Blit;
> import sun.java2d.pipe.ValidatePipe;
> import sun.java2d.pipe.PixelToShapeConverter;
> import sun.java2d.pipe.TextPipe;
> @@ -201,13 +197,13 @@
> static {
> if (!GraphicsEnvironment.isHeadless()) {
> // If a screen magnifier is present, don't attempt to use DGA
> - String magPresent = (String) java.security.AccessController.doPrivileged
> + String magPresent = java.security.AccessController.doPrivileged
> (new sun.security.action.GetPropertyAction("javax.accessibility.screen_magnifier_present"));
> boolean tryDGA = magPresent == null || !"true".equals(magPresent);
>
> initIDs(XORComposite.class, tryDGA);
>
> - String xtextpipe = (String) java.security.AccessController.doPrivileged
> + String xtextpipe = java.security.AccessController.doPrivileged
> (new sun.security.action.GetPropertyAction("sun.java2d.xtextpipe"));
> if (xtextpipe == null || "true".startsWith(xtextpipe)) {
> if ("true".equals(xtextpipe)) {
> @@ -246,8 +242,7 @@
> if (GraphicsEnvironment.isHeadless()) {
> accelerationEnabled = Boolean.FALSE;
> } else {
> - String prop =
> - (String) java.security.AccessController.doPrivileged(
> + String prop = java.security.AccessController.doPrivileged(
> new sun.security.action.GetPropertyAction("sun.java2d.pmoffscreen"));
> if (prop != null) {
> // true iff prop==true, false otherwise
> @@ -266,11 +261,12 @@
> return X11SurfaceDataProxy.createProxy(srcData, graphicsConfig);
> }
>
> + @Override
> public void validatePipe(SunGraphics2D sg2d) {
> if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON &&
> - sg2d.paintState <= sg2d.PAINT_ALPHACOLOR &&
> - (sg2d.compositeState <= sg2d.COMP_ISCOPY ||
> - sg2d.compositeState == sg2d.COMP_XOR))
> + sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
> + (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY ||
> + sg2d.compositeState == SunGraphics2D.COMP_XOR))
> {
> if (x11txpipe == null) {
> /*
> @@ -288,7 +284,7 @@
> return;
> }
>
> - if (sg2d.clipState == sg2d.CLIP_SHAPE) {
> + if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
> // Do this to init textpipe correctly; we will override the
> // other non-text pipes below
> // REMIND: we should clean this up eventually instead of
> @@ -302,7 +298,7 @@
> case SunHints.INTVAL_TEXT_ANTIALIAS_OFF:
> // Use X11 pipe even if DGA is available since DGA
> // text slows everything down when mixed with X11 calls
> - if (sg2d.compositeState == sg2d.COMP_ISCOPY) {
> + if (sg2d.compositeState == SunGraphics2D.COMP_ISCOPY) {
> sg2d.textpipe = x11textpipe;
> } else {
> sg2d.textpipe = solidTextRenderer;
> @@ -326,7 +322,7 @@
> case SunHints.INTVAL_TEXT_ANTIALIAS_OFF:
> // Use X11 pipe even if DGA is available since DGA
> // text slows everything down when mixed with X11 calls
> - if (sg2d.compositeState == sg2d.COMP_ISCOPY) {
> + if (sg2d.compositeState == SunGraphics2D.COMP_ISCOPY) {
> sg2d.textpipe = x11textpipe;
> } else {
> sg2d.textpipe = solidTextRenderer;
> @@ -343,10 +339,10 @@
> }
> }
>
> - if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) {
> + if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
> sg2d.drawpipe = x11txpipe;
> sg2d.fillpipe = x11txpipe;
> - } else if (sg2d.strokeState != sg2d.STROKE_THIN){
> + } else if (sg2d.strokeState != SunGraphics2D.STROKE_THIN){
> sg2d.drawpipe = x11txpipe;
> sg2d.fillpipe = x11pipe;
> } else {
> @@ -367,9 +363,10 @@
> }
> }
>
> + @Override
> public RenderLoops getRenderLoops(SunGraphics2D sg2d) {
> - if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR &&
> - sg2d.compositeState <= sg2d.COMP_ISCOPY)
> + if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
> + sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY)
> {
> return solidloops;
> }
> @@ -448,6 +445,7 @@
> */
> public abstract boolean canSourceSendExposures(int x, int y, int w, int h);
>
> + @Override
> public boolean copyArea(SunGraphics2D sg2d,
> int x, int y, int w, int h, int dx, int dy)
> {
> @@ -458,7 +456,7 @@
> makePipes();
> }
> CompositeType comptype = sg2d.imageComp;
> - if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE &&
> + if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE &&
> (CompositeType.SrcOverNoEa.equals(comptype) ||
> CompositeType.SrcNoEa.equals(comptype)))
> {
> @@ -467,8 +465,8 @@
> SunToolkit.awtLock();
> try {
> boolean needExposures = canSourceSendExposures(x, y, w, h);
> - long xgc = getBlitGC(sg2d.getCompClip(), needExposures);
> - x11pipe.devCopyArea(getNativeOps(), xgc,
> + long _xgc = getBlitGC(sg2d.getCompClip(), needExposures);
> + x11pipe.devCopyArea(getNativeOps(), _xgc,
> x, y,
> x + dx, y + dy,
> w, h);
> @@ -567,6 +565,7 @@
>
> public native void setInvalid();
>
> + @Override
> public void invalidate() {
> if (isValid()) {
> setInvalid();
> @@ -743,6 +742,7 @@
> * it could choose wrong loop (blit instead of blitbg,
> * for example).
> */
> + @Override
> public int getTransparency() {
> return transparency;
> }
> @@ -756,6 +756,7 @@
> return (x < 0 || y < 0 || (x+w) > width || (y+h) > height);
> }
>
> + @Override
> public void flush() {
> /*
> * We need to invalidate the surface before disposing the
> @@ -780,6 +781,7 @@
> private static LazyPipe lazypipe = new LazyPipe();
>
> public static class LazyPipe extends ValidatePipe {
> + @Override
> public boolean validate(SunGraphics2D sg2d) {
> X11SurfaceData xsd = (X11SurfaceData) sg2d.surfaceData;
> if (!xsd.isDrawableValid()) {
> Index: j2se/src/solaris/classes/sun/java2d/x11/X11VolatileSurfaceManager.java
> ===================================================================
> --- j2se/src/solaris/classes/sun/java2d/x11/X11VolatileSurfaceManager.java (Revision 252)
> +++ j2se/src/solaris/classes/sun/java2d/x11/X11VolatileSurfaceManager.java (Arbeitskopie)
> @@ -103,6 +103,7 @@
> return sData;
> }
>
> + @Override
> protected boolean isConfigValid(GraphicsConfiguration gc) {
> // REMIND: we might be too paranoid here, requiring that
> // the GC be exactly the same as the original one. The
> Index: j2se/src/solaris/classes/sun/java2d/x11/X11SurfaceDataProxy.java
> ===================================================================
> --- j2se/src/solaris/classes/sun/java2d/x11/X11SurfaceDataProxy.java (Revision 252)
> +++ j2se/src/solaris/classes/sun/java2d/x11/X11SurfaceDataProxy.java (Arbeitskopie)
> @@ -26,8 +26,6 @@
> package sun.java2d.x11;
>
> import java.awt.Color;
> -import java.awt.AlphaComposite;
> -import java.awt.GraphicsConfiguration;
> import java.awt.Transparency;
> import java.awt.image.ColorModel;
> import java.awt.image.IndexColorModel;
> Index: j2se/src/solaris/classes/sun/java2d/x11/X11PMBlitLoops.java
> ===================================================================
> --- j2se/src/solaris/classes/sun/java2d/x11/X11PMBlitLoops.java (Revision 252)
> +++ j2se/src/solaris/classes/sun/java2d/x11/X11PMBlitLoops.java (Arbeitskopie)
> @@ -28,11 +28,9 @@
> import sun.awt.SunToolkit;
> import sun.java2d.loops.GraphicsPrimitive;
> import sun.java2d.loops.GraphicsPrimitiveMgr;
> -import sun.java2d.loops.GraphicsPrimitiveProxy;
> import sun.java2d.loops.CompositeType;
> import sun.java2d.loops.SurfaceType;
> import sun.java2d.loops.Blit;
> -import sun.java2d.loops.MaskBlit;
> import sun.java2d.pipe.Region;
> import sun.java2d.SurfaceData;
> import java.awt.Composite;
> @@ -128,6 +126,7 @@
> dstType);
> }
>
> + @Override
> public void Blit(SurfaceData src, SurfaceData dst,
> Composite comp, Region clip,
> int sx, int sy,
> @@ -178,6 +177,7 @@
> this.dstType = delegateDstType;
> }
>
> + @Override
> public void Blit(SurfaceData src, SurfaceData dst,
> Composite comp, Region clip,
> int sx, int sy, int dx, int dy, int w, int h)
More information about the 2d-dev
mailing list