diff options
-rw-r--r-- | src/classes/share/javax/media/j3d/ImageComponentRetained.java | 47 |
1 files changed, 21 insertions, 26 deletions
diff --git a/src/classes/share/javax/media/j3d/ImageComponentRetained.java b/src/classes/share/javax/media/j3d/ImageComponentRetained.java index 56122e2..c38863f 100644 --- a/src/classes/share/javax/media/j3d/ImageComponentRetained.java +++ b/src/classes/share/javax/media/j3d/ImageComponentRetained.java @@ -146,10 +146,10 @@ abstract class ImageComponentRetained extends NodeComponentRetained { int numXTiles = 0; int numYTiles = 0; - // lists of Node Components that are referencing this ImageComponent - // object. This list is used to notify the referencing node components - // of any changes of this ImageComponent. - ArrayList userList = new ArrayList(); +// lists of Node Components that are referencing this ImageComponent +// object. This list is used to notify the referencing node components +// of any changes of this ImageComponent. +private ArrayList<NodeComponentRetained> userList = new ArrayList<NodeComponentRetained>(); /** * Retrieves the width of this image component object. @@ -2161,28 +2161,23 @@ abstract class ImageComponentRetained extends NodeComponentRetained { * the changes to the users */ synchronized void updateMirrorObject(int component, Object value) { - - //System.err.println("ImageComponent.updateMirrorObject"); - - Object user; - - if (((component & IMAGE_CHANGED) != 0) || - ((component & SUBIMAGE_CHANGED) != 0)) { - synchronized(userList) { - for (int i = userList.size()-1; i >=0; i--) { - user = userList.get(i); - if (user != null) { - if (user instanceof TextureRetained) { - ((TextureRetained)user).notifyImageComponentImageChanged(this, (ImageComponentUpdateInfo)value); - } else if (user instanceof RasterRetained) { - ((RasterRetained)user).notifyImageComponentImageChanged(this, (ImageComponentUpdateInfo)value); - } else if (user instanceof BackgroundRetained) { - ((BackgroundRetained)user).notifyImageComponentImageChanged(this, (ImageComponentUpdateInfo)value); - } - } - } - } - } + // System.err.println("ImageComponent.updateMirrorObject"); + if ((component & IMAGE_CHANGED) == 0 && + (component & SUBIMAGE_CHANGED) == 0) + return; + + for (int i = userList.size() - 1; i >= 0; i--) { + NodeComponentRetained user = userList.get(i); + if (user == null) + continue; + + if (user instanceof TextureRetained) { + ((TextureRetained)user).notifyImageComponentImageChanged(this, (ImageComponentUpdateInfo)value); + } + else if (user instanceof RasterRetained) { + ((RasterRetained)user).notifyImageComponentImageChanged(this, (ImageComponentUpdateInfo)value); + } + } } final void sendMessage(int attrMask, Object attr) { |