diff options
-rw-r--r-- | libjava/ChangeLog | 4 | ||||
-rw-r--r-- | libjava/java/awt/image/PixelGrabber.java | 31 |
2 files changed, 12 insertions, 23 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 8cef7e742dc..6e1f0967273 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,6 +1,10 @@ 2002-01-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz> * java/lang/natObject.cc (X86 compare_and_swap): Use +m constraint. + + * java/awt/image/PixelGrabber.java (grabPixels()): Call grabPixels(0). + * java/awt/image/PixelGrabber.java (grabPixels(long)): Wait to be + notified that the ImageProducer has completed. 2002-01-24 Per Bothner <per@bothner.com> diff --git a/libjava/java/awt/image/PixelGrabber.java b/libjava/java/awt/image/PixelGrabber.java index efa98856ca3..65e831e9809 100644 --- a/libjava/java/awt/image/PixelGrabber.java +++ b/libjava/java/awt/image/PixelGrabber.java @@ -155,15 +155,7 @@ public class PixelGrabber implements ImageConsumer */ public boolean grabPixels() throws InterruptedException { - startGrabbing(); - while ( (status != ImageObserver.ALLBITS ) || - (status != ImageObserver.ERROR ) || - (status != ImageObserver.ABORT ) ); - - if( status == ImageObserver.ALLBITS ) - return true; - else - return false; + return grabPixels(0); } /** @@ -176,24 +168,17 @@ public class PixelGrabber implements ImageConsumer */ public synchronized boolean grabPixels(long ms) throws InterruptedException { - long start = System.currentTimeMillis(); startGrabbing(); - while ( (status != ImageObserver.ALLBITS ) || - (status != ImageObserver.ERROR ) || - (status != ImageObserver.ABORT ) ) - { - if( (System.currentTimeMillis() - start ) >= ms ) - { - abortGrabbing(); - throw new InterruptedException(); - } - } - - if( status == ImageObserver.ALLBITS ) + + if (ms < 0) + return (status == ImageObserver.ALLBITS); + + wait(ms); + + if (status == ImageObserver.ALLBITS) return true; else return false; - } /** |