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

Merge

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