提交 759093ae 编写于 作者: A asaha

Merge

......@@ -715,16 +715,19 @@ public abstract class SunToolkit extends Toolkit
}
static final SoftCache imgCache = new SoftCache();
static final SoftCache fileImgCache = new SoftCache();
static final SoftCache urlImgCache = new SoftCache();
static Image getImageFromHash(Toolkit tk, URL url) {
checkPermissions(url);
synchronized (imgCache) {
Image img = (Image)imgCache.get(url);
synchronized (urlImgCache) {
String key = url.toString();
Image img = (Image)urlImgCache.get(key);
if (img == null) {
try {
img = tk.createImage(new URLImageSource(url));
imgCache.put(url, img);
urlImgCache.put(key, img);
} catch (Exception e) {
}
}
......@@ -735,12 +738,12 @@ public abstract class SunToolkit extends Toolkit
static Image getImageFromHash(Toolkit tk,
String filename) {
checkPermissions(filename);
synchronized (imgCache) {
Image img = (Image)imgCache.get(filename);
synchronized (fileImgCache) {
Image img = (Image)fileImgCache.get(filename);
if (img == null) {
try {
img = tk.createImage(new FileImageSource(filename));
imgCache.put(filename, img);
fileImgCache.put(filename, img);
} catch (Exception e) {
}
}
......@@ -758,28 +761,29 @@ public abstract class SunToolkit extends Toolkit
protected Image getImageWithResolutionVariant(String fileName,
String resolutionVariantName) {
synchronized (imgCache) {
synchronized (fileImgCache) {
Image image = getImageFromHash(this, fileName);
if (image instanceof MultiResolutionImage) {
return image;
}
Image resolutionVariant = getImageFromHash(this, resolutionVariantName);
image = createImageWithResolutionVariant(image, resolutionVariant);
imgCache.put(fileName, image);
fileImgCache.put(fileName, image);
return image;
}
}
protected Image getImageWithResolutionVariant(URL url,
URL resolutionVariantURL) {
synchronized (imgCache) {
synchronized (urlImgCache) {
Image image = getImageFromHash(this, url);
if (image instanceof MultiResolutionImage) {
return image;
}
Image resolutionVariant = getImageFromHash(this, resolutionVariantURL);
image = createImageWithResolutionVariant(image, resolutionVariant);
imgCache.put(url, image);
String key = url.toString();
urlImgCache.put(key, image);
return image;
}
}
......@@ -884,8 +888,13 @@ public abstract class SunToolkit extends Toolkit
return null;
}
protected static boolean imageCached(Object key) {
return imgCache.containsKey(key);
protected static boolean imageCached(String fileName) {
return fileImgCache.containsKey(fileName);
}
protected static boolean imageCached(URL url) {
String key = url.toString();
return urlImgCache.containsKey(key);
}
protected static boolean imageExists(String filename) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册