Index: gnu/java/awt/peer/gtk/GtkImage.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkImage.java,v retrieving revision 1.15 diff -u -r1.15 GtkImage.java --- gnu/java/awt/peer/gtk/GtkImage.java 2 Jun 2005 13:18:10 -0000 1.15 +++ gnu/java/awt/peer/gtk/GtkImage.java 5 Jun 2005 23:39:04 -0000 @@ -281,6 +281,8 @@ */ public ImageProducer getSource () { + if (!isLoaded) + return null; return new MemoryImageSource(width, height, nativeModel, getPixels(), 0, width); } @@ -433,7 +435,8 @@ ImageObserver.PROPERTIES | ImageObserver.ALLBITS; - for(int i=0; i < observers.size(); i++) + if (observers != null) + for(int i=0; i < observers.size(); i++) ((ImageObserver)observers.elementAt(i)). imageUpdate(this, flags, 0, 0, width, height); Index: java/awt/image/RGBImageFilter.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/awt/image/RGBImageFilter.java,v retrieving revision 1.10 diff -u -r1.10 RGBImageFilter.java --- java/awt/image/RGBImageFilter.java 16 Feb 2005 10:39:27 -0000 1.10 +++ java/awt/image/RGBImageFilter.java 5 Jun 2005 23:39:05 -0000 @@ -147,12 +147,14 @@ public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, int offset, int scansize) { - for (int xp = x; xp < (x + w); xp++) - for (int yp = y; yp < (y + h); yp++) - { - pixels[offset] = filterRGB(xp, yp, pixels[offset]); - offset++; - } + for (int yp = 0; yp < h; yp++) + { + for (int xp = 0; xp < w; xp++) + { + pixels[offset + xp] = filterRGB(xp + x, yp + y, pixels[offset + xp]); + } + offset += scansize; + } } @@ -212,9 +214,9 @@ else { //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); + 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); } }