http://gwt-code-reviews.appspot.com/1388803/diff/3004/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java
File
dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java
(right):

http://gwt-code-reviews.appspot.com/1388803/diff/3004/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java#newcode97
dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java:97:
private final Map<PathPrefixSet, ZipFileSnapshot> cachedSnapshots = new
ReferenceIdentityMap(
Practically I just keep previous behavior.

1. ReferenceIdentityMap is "weak" by definition because it uses == as
equality, so if you lost reference of key, you will not able to get
value. Same for weak WeakHashMap - if you lost last reference on key, GC
will remove entry soon.

2. Difference between "key" and "value" in "cachedSnapshots" is that
PathPrefixSet is remembered in ModuleDef (in oracles), but
ZipFileSnapshot is not referenced from anywhere. So, if we will make
reference on it weak, they will be removed quickly and this will make
cache useless.

http://gwt-code-reviews.appspot.com/1388803/

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to