summaryrefslogtreecommitdiff
path: root/java/awt/MediaTracker.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2005-07-12 09:15:54 +0000
committerMark Wielaard <mark@klomp.org>2005-07-12 09:15:54 +0000
commit607a2ef2589799f1545980f2f3b715349dfc696f (patch)
tree017e3784ad67aac18c197427c91a46bbf58af265 /java/awt/MediaTracker.java
parenta2cba26eacd8a748e77d066ccaac0c912499cdd0 (diff)
downloadclasspath-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/awt/MediaTracker.java')
-rw-r--r--java/awt/MediaTracker.java80
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;
}