/[libvob]/libvob/org/nongnu/libvob/util/RefValueMap.java
ViewVC logotype

Diff of /libvob/org/nongnu/libvob/util/RefValueMap.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by tjl, Sun Jun 22 11:55:11 2003 UTC revision 1.2 by tjl, Sun Jun 22 12:08:39 2003 UTC
# Line 72  public abstract class RefValueMap extend Line 72  public abstract class RefValueMap extend
72    
73      protected abstract Object makeValue(Object key, Object value, ReferenceQueue queue);      protected abstract Object makeValue(Object key, Object value, ReferenceQueue queue);
74    
75    
76        protected void clean() {
77            Map.Entry o;
78            while((o = (Map.Entry)queue.poll()) != null)
79                map.remove(o.getKey());
80        }
81    
82      public Object put(Object key, Object value) {      public Object put(Object key, Object value) {
83            clean();
84          Map.Entry ret = (Map.Entry)map.put(key, makeValue(key, value, queue));          Map.Entry ret = (Map.Entry)map.put(key, makeValue(key, value, queue));
85          if(ret == null) return null;          if(ret == null) return null;
86          return ret.getValue();          return ret.getValue();
# Line 104  public abstract class RefValueMap extend Line 112  public abstract class RefValueMap extend
112      };      };
113    
114      public Set entrySet() {      public Set entrySet() {
115            clean();
116          return entrySet;          return entrySet;
117      }      }
118    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26