diff options
author | Mark Wielaard <mark@klomp.org> | 2005-07-12 09:15:54 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2005-07-12 09:15:54 +0000 |
commit | 607a2ef2589799f1545980f2f3b715349dfc696f (patch) | |
tree | 017e3784ad67aac18c197427c91a46bbf58af265 /java | |
parent | a2cba26eacd8a748e77d066ccaac0c912499cdd0 (diff) | |
download | classpath-607a2ef2589799f1545980f2f3b715349dfc696f.tar.gz |
* java/awt/MediaTracker.java (checkAll): Set and check status of
MediaEntry with checkImage() if prepareImage() returns false.
(statusAll): Likewise.
(checkID): Likewise.
(statusID): Likewise.
Diffstat (limited to 'java')
-rw-r--r-- | java/awt/MediaTracker.java | 80 |
1 files changed, 57 insertions, 23 deletions
diff --git a/java/awt/MediaTracker.java b/java/awt/MediaTracker.java index b75948fde..9abfde6ef 100644 --- a/java/awt/MediaTracker.java +++ b/java/awt/MediaTracker.java @@ -241,15 +241,24 @@ public class MediaTracker implements java.io.Serializable { if (load && ((e.status & LOADING) == 0)) { - e.status = LOADING; - result = false; - boolean complete = target.prepareImage(e.image, e); - if (complete) - { - e.status = COMPLETE; - result = true; - } - } + if (target.prepareImage(e.image, e)) + e.status = COMPLETE; + else + { + e.status = LOADING; + int flags = target.checkImage(e.image, e); + if ((flags & ImageObserver.ABORT) != 0) + e.status = ABORTED; + else if ((flags & ImageObserver.ERROR) != 0) + e.status = ERRORED; + else if ((flags & ImageObserver.ALLBITS) != 0) + e.status = COMPLETE; + } + boolean complete = (e.status + & (COMPLETE | ABORTED | ERRORED)) != 0; + if (!complete) + result = false; + } else result = false; } @@ -373,11 +382,19 @@ public class MediaTracker implements java.io.Serializable { if (load && e.status == 0) { - boolean complete = target.prepareImage(e.image, e); - if (complete) + if (target.prepareImage(e.image, e)) e.status = COMPLETE; else - e.status = LOADING; + { + e.status = LOADING; + int flags = target.checkImage(e.image, e); + if ((flags & ImageObserver.ABORT) != 0) + e.status = ABORTED; + else if ((flags & ImageObserver.ERROR) != 0) + e.status = ERRORED; + else if ((flags & ImageObserver.ALLBITS) != 0) + e.status = COMPLETE; + } } result |= e.status; e = e.next; @@ -422,13 +439,22 @@ public class MediaTracker implements java.io.Serializable if (load && ((e.status & LOADING) == 0)) { e.status = LOADING; - result = false; - boolean complete = target.prepareImage(e.image, e); - if (complete) - { - e.status = COMPLETE; - result = true; - } + if (target.prepareImage(e.image, e)) + e.status = COMPLETE; + else + { + int flags = target.checkImage(e.image, e); + if ((flags & ImageObserver.ABORT) != 0) + e.status = ABORTED; + else if ((flags & ImageObserver.ERROR) != 0) + e.status = ERRORED; + else if ((flags & ImageObserver.ALLBITS) != 0) + e.status = COMPLETE; + } + boolean complete = (e.status + & (COMPLETE | ABORTED | ERRORED)) != 0; + if (!complete) + result = false; } else result = false; @@ -567,11 +593,19 @@ public class MediaTracker implements java.io.Serializable { if (load && e.status == 0) { - boolean complete = target.prepareImage(e.image, e); - if (complete) + if (target.prepareImage(e.image, e)) e.status = COMPLETE; - else - e.status = LOADING; + else + { + e.status = LOADING; + int flags = target.checkImage(e.image, e); + if ((flags & ImageObserver.ABORT) != 0) + e.status = ABORTED; + else if ((flags & ImageObserver.ERROR) != 0) + e.status = ERRORED; + else if ((flags & ImageObserver.ALLBITS) != 0) + e.status = COMPLETE; + } } result |= e.status; } |