[Fb-contrib-commit] SF.net SVN: fb-contrib: [850] trunk/fb-contrib/src/com/mebigfatguy/ fbcontrib/
Brought to you by:
dbrosius
From: <dbr...@us...> - 2007-02-13 04:34:15
|
Revision: 850 http://svn.sourceforge.net/fb-contrib/?rev=850&view=rev Author: dbrosius Date: 2007-02-12 20:34:14 -0800 (Mon, 12 Feb 2007) Log Message: ----------- if an iterator is reused for a new collection, make sure to remove it from the collection group to iterator map Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/DeletingWhileIterating.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/DeletingWhileIterating.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/DeletingWhileIterating.java 2007-02-09 23:31:55 UTC (rev 849) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/DeletingWhileIterating.java 2007-02-13 04:34:14 UTC (rev 850) @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -229,7 +230,13 @@ try { JavaClass cls = itm.getJavaClass(); if ((cls != null) && cls.implementationOf(iteratorClass)) { - groupToIterator.put(id, Integer14.valueOf(reg)); + Integer regIt = Integer14.valueOf(reg); + Iterator<Integer> curIt = groupToIterator.values().iterator(); + while (curIt.hasNext()) { + if (curIt.next().equals(regIt)) + curIt.remove(); + } + groupToIterator.put(id, regIt); } Set<Comparable> group = collectionGroups.get(id.intValue()); @@ -362,5 +369,10 @@ public boolean hasPC(int pc) { return (loopStart <= pc) && (pc <= loopFinish); } + + @Override + public String toString() { + return "Start=" + loopStart + " Finish=" + loopFinish; + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |