Previous patch is wrong. This one is right.

2005-07-11  Sven de Marothy  <[EMAIL PROTECTED]>

        * gnu/java/awt/peer/gtk/GtkImage.java:
        (setImage): Set error flag on bad width, height or pixels.
        (checkImage): Return error flag.


-- 
Sven de Marothy <[EMAIL PROTECTED]>
Index: gnu/java/awt/peer/gtk/GtkImage.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkImage.java,v
retrieving revision 1.19
diff -U3 -r1.19 GtkImage.java
--- gnu/java/awt/peer/gtk/GtkImage.java	2 Jul 2005 20:32:12 -0000	1.19
+++ gnu/java/awt/peer/gtk/GtkImage.java	11 Jul 2005 21:05:28 -0000
@@ -100,6 +100,11 @@
   boolean offScreen;
 
   /**
+   * Error flag for loading.
+   */
+  boolean errorLoading;
+
+  /**
    * Original source, if created from an ImageProducer.
    */
   ImageProducer source;
@@ -176,6 +181,7 @@
     isLoaded = false;
     observers = new Vector();
     source = producer;
+    errorLoading = false;
     source.startProduction(new GtkImageConsumer(this, source));
     offScreen = false;
   }
@@ -243,6 +249,13 @@
     this.width = width;
     this.height = height;
     props = (properties != null) ? properties : new Hashtable();
+
+    if (width <= 0 || height <= 0 || pixels == null)
+      {
+	errorLoading = true;
+	return;
+      }
+
     isLoaded = true;
     deliver();
     createPixmap();
@@ -346,7 +359,12 @@
   public int checkImage (ImageObserver observer)
   {
     if (addObserver(observer))
-      return 0;
+      {
+	if (errorLoading == true)
+	  return ImageObserver.ERROR;
+	else
+	  return 0;
+      }
 
     return ImageObserver.ALLBITS | ImageObserver.WIDTH | ImageObserver.HEIGHT;
   }
_______________________________________________
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to