classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] add consumer != null checks to image filters


From: Thomas Fitzsimmons
Subject: [cp-patches] add consumer != null checks to image filters
Date: Sat, 20 Aug 2005 23:11:50 -0400

Hi,

I added consumer != null checks throughout image filters.  It seems that
some programs want to call filter methods before a consumer has been
set.  One example is the Zaval Java Resource Editor:

http://zaval.org/products/jrc-editor/

With this patch, which fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22897
jrc-editor starts up.

Tom

2005-08-20  Thomas Fitzsimmons  <address@hidden>

        * java/awt/image/AreaAveragingScaleFilter.java: Add checks for
        consumer != null.
        * java/awt/image/CropImageFilter.java: Likewise.
        * java/awt/image/ImageFilter.java: Likewise.
        * java/awt/image/RGBImageFilter.java: Likewise.
        * java/awt/image/ReplicateScaleFilter.java: Likewise.

Index: java/awt/image//AreaAveragingScaleFilter.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/java/awt/image/AreaAveragingScaleFilter.java,v
retrieving revision 1.6
diff -u -r1.6 AreaAveragingScaleFilter.java
--- java/awt/image//AreaAveragingScaleFilter.java       2 Jul 2005 20:32:29 
-0000       1.6
+++ java/awt/image//AreaAveragingScaleFilter.java       21 Aug 2005 03:07:40 
-0000
@@ -80,6 +80,7 @@
      */
     public void setHints(int flags)
     {
+      if (consumer != null)
        consumer.setHints(flags);
     }
 
@@ -100,6 +101,7 @@
     public void setPixels(int x, int y, int w, int h, 
           ColorModel model, byte[] pixels, int offset, int scansize)
     {
+      if (consumer != null)
        consumer.setPixels(x, y, w, h, model, pixels, offset, scansize);
     }
 
@@ -120,6 +122,7 @@
     public void setPixels(int x, int y, int w, int h, 
            ColorModel model, int[] pixels, int offset, int scansize)
     {
+      if (consumer != null)
        consumer.setPixels(x, y, w, h, model, pixels, offset, scansize);
     }
 
Index: java/awt/image//CropImageFilter.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/image/CropImageFilter.java,v
retrieving revision 1.8
diff -u -r1.8 CropImageFilter.java
--- java/awt/image//CropImageFilter.java        2 Jul 2005 20:32:30 -0000       
1.8
+++ java/awt/image//CropImageFilter.java        21 Aug 2005 03:07:40 -0000
@@ -79,6 +79,7 @@
      */
     public void setDimensions(int width, int height)
     {
+      if (consumer != null)
        consumer.setDimensions(this.width, this.height);
     }
 
@@ -93,7 +94,8 @@
     public void setProperties(Hashtable props)
     {
        props.put("filters", "CropImageFilter");
-       consumer.setProperties(props);
+       if (consumer != null)
+         consumer.setProperties(props);
     }
 
     /**
@@ -130,9 +132,10 @@
                    cropped[i * bounds.width + j] = pixels[start + bounds.x + 
j];
            }
            
-           consumer.setPixels(bounds.x, bounds.y,
-                              bounds.width, bounds.height,
-                              model, cropped, 0, bounds.width);
+           if (consumer != null)
+             consumer.setPixels(bounds.x, bounds.y,
+                                bounds.width, bounds.height,
+                                model, cropped, 0, bounds.width);
        }
     }
 
@@ -170,9 +173,10 @@
                    cropped[i * bounds.width + j] = pixels[start + bounds.x + 
j];
            }
            
-           consumer.setPixels(bounds.x, bounds.y,
-                              bounds.width, bounds.height,
-                              model, cropped, 0, bounds.width);
+           if (consumer != null)
+             consumer.setPixels(bounds.x, bounds.y,
+                                bounds.width, bounds.height,
+                                model, cropped, 0, bounds.width);
        }
     }
 
Index: java/awt/image//ImageFilter.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/image/ImageFilter.java,v
retrieving revision 1.9
diff -u -r1.9 ImageFilter.java
--- java/awt/image//ImageFilter.java    2 Jul 2005 20:32:34 -0000       1.9
+++ java/awt/image//ImageFilter.java    21 Aug 2005 03:07:40 -0000
@@ -125,6 +125,7 @@
      */
     public void setDimensions(int width, int height)
     {
+      if (consumer != null)
        consumer.setDimensions(width, height);
     }
 
@@ -137,7 +138,8 @@
     public void setProperties(Hashtable props)
     {
        props.put("filters", "ImageFilter");
-       consumer.setProperties(props);
+       if (consumer != null)
+         consumer.setProperties(props);
     }
 
     /**
@@ -149,6 +151,7 @@
      * @see ColorModel */
     public void setColorModel(ColorModel model)
     {
+      if (consumer != null)
        consumer.setColorModel(model);
     }
 
@@ -164,6 +167,7 @@
      */
     public void setHints(int flags)
     {
+      if (consumer != null)
        consumer.setHints(flags);
     }
 
@@ -184,6 +188,7 @@
     public void setPixels(int x, int y, int w, int h, 
           ColorModel model, byte[] pixels, int offset, int scansize)
     {
+      if (consumer != null)
        consumer.setPixels(x, y, w, h, model, pixels, offset, scansize);
     }
 
@@ -204,6 +209,7 @@
     public void setPixels(int x, int y, int w, int h, 
            ColorModel model, int[] pixels, int offset, int scansize)
     {
+      if (consumer != null)
        consumer.setPixels(x, y, w, h, model, pixels, offset, scansize);
     }
 
@@ -215,6 +221,7 @@
      */
     public void imageComplete(int status)
     {
+      if (consumer != null)
        consumer.imageComplete(status);
     }
 }
Index: java/awt/image//RGBImageFilter.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/image/RGBImageFilter.java,v
retrieving revision 1.12
diff -u -r1.12 RGBImageFilter.java
--- java/awt/image//RGBImageFilter.java 2 Jul 2005 20:32:36 -0000       1.12
+++ java/awt/image//RGBImageFilter.java 21 Aug 2005 03:07:40 -0000
@@ -79,10 +79,12 @@
 
        if( ( model instanceof IndexColorModel) && canFilterIndexColorModel  ) {
                newmodel = filterIndexColorModel( (IndexColorModel) model );
-               consumer.setColorModel(newmodel);
+               if (consumer != null)
+                 consumer.setColorModel(newmodel);
            }
        else {
-               consumer.setColorModel(ColorModel.getRGBdefault());
+         if (consumer != null)
+           consumer.setColorModel(ColorModel.getRGBdefault());
        }
     }
     
@@ -178,6 +180,7 @@
     {
        if(model == origmodel && (model instanceof IndexColorModel) && 
canFilterIndexColorModel)
        {
+         if (consumer != null)
            consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize);
        }
        else
@@ -185,7 +188,8 @@
            int intPixels[] =
                convertColorModelToDefault( x, y, w, h, model, pixels, offset, 
scansize );
            filterRGBPixels( x, y, w, h, intPixels, offset, scansize );
-           consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), 
intPixels, offset, scansize);
+           if (consumer != null)
+             consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), 
intPixels, offset, scansize);
        }
     }
 
@@ -209,6 +213,7 @@
     {
        if(model == origmodel && (model instanceof IndexColorModel) && 
canFilterIndexColorModel)
        {
+         if (consumer != null)
            consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize);
        }
        else
@@ -216,7 +221,8 @@
            //FIXME: Store the filtered pixels in a separate temporary buffer?
          convertColorModelToDefault( x, y, w, h, model, pixels, offset, 
scansize );
          filterRGBPixels( x, y, w, h, pixels, offset, scansize );
-         consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, 
offset, scansize);
+         if (consumer != null)
+           consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, 
offset, scansize);
        }
     }
 
Index: java/awt/image//ReplicateScaleFilter.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/java/awt/image/ReplicateScaleFilter.java,v
retrieving revision 1.8
diff -u -r1.8 ReplicateScaleFilter.java
--- java/awt/image//ReplicateScaleFilter.java   2 Jul 2005 20:32:36 -0000       
1.8
+++ java/awt/image//ReplicateScaleFilter.java   21 Aug 2005 03:07:40 -0000
@@ -124,7 +124,8 @@
            destHeight = (int) (height * ((double) destWidth / srcWidth));
        }
 
-       consumer.setDimensions(destWidth, destHeight);
+       if (consumer != null)
+         consumer.setDimensions(destWidth, destHeight);
     }
 
     /**
@@ -136,7 +137,8 @@
     public void setProperties(Hashtable props)
     {
        props.put("filters", "ReplicateScaleFilter");
-       consumer.setProperties(props);
+       if (consumer != null)
+         consumer.setProperties(props);
     }
 
     /**
@@ -165,9 +167,10 @@
                                            model, pixels, offset, scansize,
                                           rx, ry, destScansize);
 
-       consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry),
-                           (int) Math.ceil(w/rx), (int) Math.ceil(h/ry),
-                           model, destPixels, 0, destScansize);
+       if (consumer != null)
+         consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry),
+                            (int) Math.ceil(w/rx), (int) Math.ceil(h/ry),
+                            model, destPixels, 0, destScansize);
     }
 
     /**
@@ -196,9 +199,10 @@
                                            model, pixels, offset, scansize,
                                           rx, ry, destScansize);
 
-       consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry),
-                           (int) Math.ceil(w/rx), (int) Math.ceil(h/ry),
-                           model, destPixels, 0, destScansize);
+       if (consumer != null)
+         consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry),
+                            (int) Math.ceil(w/rx), (int) Math.ceil(h/ry),
+                            model, destPixels, 0, destScansize);
     }
 
     private byte[] replicatePixels(int srcx, int srcy, int srcw, int srch,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]