[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