From: Samuele P. <ped...@us...> - 2001-01-23 02:07:07
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv14302/org/python/core Modified Files: InternalTables2.java Log Message: solve b.actionPerformed= lambda e,me=b: None leak. Index: InternalTables2.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/InternalTables2.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -r2.2 -r2.3 *** InternalTables2.java 2000/12/16 16:43:33 2.2 --- InternalTables2.java 2001/01/23 02:07:22 2.3 *************** *** 4,7 **** --- 4,8 ---- import java.util.*; + import java.lang.ref.*; public class InternalTables2 extends InternalTables1 { *************** *** 20,24 **** HashMap ads = (HashMap)adapters.get(o); if (ads == null) return null; ! return ads.get(evc); } --- 21,27 ---- HashMap ads = (HashMap)adapters.get(o); if (ads == null) return null; ! WeakReference adw = (WeakReference) ads.get(evc); ! if (adw == null) return null; ! return adw.get(); } *************** *** 29,33 **** adapters.put(o,ads); } ! ads.put(evc,ad); } --- 32,36 ---- adapters.put(o,ads); } ! ads.put(evc,new WeakReference(ad)); } *************** *** 63,76 **** public Object _next() { if (iterType == ADAPTER) { ! if (iter==null || !iter.hasNext() ) { ! if (grand.hasNext()) { ! cur = grand.next(); ! iter = ((HashMap)cur).values().iterator(); ! } else iter = null; ! } ! if (iter != null) { ! return iter.next().getClass().getInterfaces()[0]; ! } ! grand = null; } else if (iter.hasNext()) { --- 66,85 ---- public Object _next() { if (iterType == ADAPTER) { ! for(;;) { ! if (iter==null || !iter.hasNext() ) { ! if (grand.hasNext()) { ! cur = grand.next(); ! iter = ((HashMap)cur).values().iterator(); ! } else iter = null; ! } ! if (iter != null) { ! WeakReference adw = (WeakReference)iter.next(); ! Object ad = adw.get(); ! if (ad != null) return ad.getClass().getInterfaces()[0]; ! else continue; ! } ! grand = null; ! break; ! } } else if (iter.hasNext()) { |