In the AsyncImage we need to ignore (legal) null observers otherwise we
get NPEs.
2006-12-05 Roman Kennke <[EMAIL PROTECTED]>
* gnu/java/awt/peer/gtk/AsyncImage.java
(addObserver): Check for null and ignore null observers.
(getWidth): Check for null and ignore null observers.
(getHeight): Check for null and ignore null observers.
(getProperty): Check for null and ignore null observers.
/Roman
Index: gnu/java/awt/peer/gtk/AsyncImage.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/AsyncImage.java,v
retrieving revision 1.1
diff -u -1 -5 -r1.1 AsyncImage.java
--- gnu/java/awt/peer/gtk/AsyncImage.java 5 Dec 2006 11:11:16 -0000 1.1
+++ gnu/java/awt/peer/gtk/AsyncImage.java 5 Dec 2006 21:37:35 -0000
@@ -153,90 +153,102 @@
{
// Nothing to do here.
}
public Graphics getGraphics()
{
Image r = realImage;
Graphics g = null;
if (r != null)
g = r.getGraphics(); // Should we return some dummy graphics instead?
return g;
}
public int getHeight(ImageObserver observer)
{
- synchronized (observers)
+ if (observer != null)
{
- observers.add(observer);
+ synchronized (observers)
+ {
+ observers.add(observer);
+ }
}
int height = 0;
Image r = realImage;
if (r != null)
height = r.getHeight(observer);
return height;
}
public Object getProperty(String name, ImageObserver observer)
{
- synchronized (observers)
+ if (observer != null)
{
- observers.add(observer);
+ synchronized (observers)
+ {
+ observers.add(observer);
+ }
}
Image r = realImage;
Object prop = null;
if (r != null)
prop = r.getProperty(name, observer);
return prop;
}
public ImageProducer getSource()
{
Image r = realImage;
ImageProducer source;
if (r == null)
source = new NullImageSource();
else
source = r.getSource();
return source;
}
public int getWidth(ImageObserver observer)
{
- synchronized (observers)
+ if (observer != null)
{
- observers.add(observer);
+ synchronized (observers)
+ {
+ observers.add(observer);
+ }
}
int width = 0;
Image r = realImage;
if (r != null)
width = r.getWidth(observer);
return width;
}
void addObserver(ImageObserver obs)
{
- if (realImage != null && ! observers.contains(obs))
+ if (obs != null)
{
- obs.imageUpdate(this, ImageObserver.WIDTH | ImageObserver.HEIGHT
- |ImageObserver.ALLBITS | ImageObserver.PROPERTIES,
- 0, 0, realImage.getWidth(null),
- realImage.getHeight(null));
- }
- synchronized (observers)
- {
- observers.add(obs);
+ if (realImage != null && ! observers.contains(obs))
+ {
+ obs.imageUpdate(this, ImageObserver.WIDTH | ImageObserver.HEIGHT
+ |ImageObserver.ALLBITS | ImageObserver.PROPERTIES,
+ 0, 0, realImage.getWidth(null),
+ realImage.getHeight(null));
+ }
+ synchronized (observers)
+ {
+ observers.add(obs);
+ }
}
}
static Image realImage(Image img, ImageObserver obs)
{
if (img instanceof AsyncImage)
{
((AsyncImage) img).addObserver(obs);
Image r = ((AsyncImage) img).realImage;
if (r != null)
img = r;
}
return img;
}