Skip to content

Commit 33c231d

Browse files
committed
Fix memory leak caused by concurrent image loads
1 parent f278afa commit 33c231d

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

projects/jar/src/app/java/echopointng/image/ImageKit.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -662,19 +662,21 @@ public static boolean waitForImage(Image srcImage) {
662662
if (srcImage == null)
663663
return false;
664664

665+
int currentId;
665666
synchronized (imageObserver) {
666667
mediaTrackerIDs++;
668+
currentId = mediaTrackerIDs;
667669
}
668670

669-
imageMediaTracker.addImage(srcImage, mediaTrackerIDs);
671+
imageMediaTracker.addImage(srcImage, currentId);
670672
try {
671-
imageMediaTracker.waitForID(mediaTrackerIDs);
672-
if (imageMediaTracker.isErrorID(mediaTrackerIDs))
673+
imageMediaTracker.waitForID(currentId);
674+
if (imageMediaTracker.isErrorID(currentId))
673675
return false;
674676
} catch (Exception e) {
675677
return false;
676678
} finally {
677-
imageMediaTracker.removeImage(srcImage, mediaTrackerIDs);
679+
imageMediaTracker.removeImage(srcImage, currentId);
678680
}
679681

680682
return true;

0 commit comments

Comments
 (0)