[Top][All Lists]
[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,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] add consumer != null checks to image filters,
Thomas Fitzsimmons <=