Index: src/org/aspectj/weaver/bcel/LazyMethodGen.java =================================================================== RCS file: /home/technology/org.aspectj/modules/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java,v retrieving revision 1.16 diff -u -r1.16 LazyMethodGen.java --- src/org/aspectj/weaver/bcel/LazyMethodGen.java 8 Aug 2003 01:23:31 -0000 1.16 +++ src/org/aspectj/weaver/bcel/LazyMethodGen.java 18 Aug 2003 12:38:32 -0000 @@ -17,6 +17,8 @@ import java.io.PrintStream; import java.lang.reflect.Modifier; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -254,10 +256,8 @@ LocalVariableGen lng = (LocalVariableGen) targeter; LocalVariableTag lr = new LocalVariableTag(BcelWorld.fromBcel(lng.getType()), lng.getName(), lng.getIndex()); if (lng.getStart() == ih) { - lng.setStart(null); locals.add(lr); } else { - lng.setEnd(null); ends.add(lr); } } @@ -833,15 +833,10 @@ } } else if (targeter instanceof LocalVariableTag) { LocalVariableTag lvt = (LocalVariableTag) targeter; - if (i instanceof LocalVariableInstruction) { - int index = ((LocalVariableInstruction)i).getIndex(); - if (lvt.getSlot() == index) { - if (localVariableStarts.get(lvt) == null) { - localVariableStarts.put(lvt, jh); - } - localVariableEnds.put(lvt, jh); - } + if (localVariableStarts.get(lvt) == null) { + localVariableStarts.put(lvt, jh); } + localVariableEnds.put(lvt, jh); } } } @@ -871,7 +866,35 @@ Map duplicatedLocalMap = new HashMap(); - for (Iterator iter = localVariableStarts.keySet().iterator(); iter.hasNext(); ) { + // Reverse sort these keys + List keys = new ArrayList(); + + keys.addAll(localVariableStarts.keySet()); +// System.err.println("Keys for local variable tags"); +// for (int i = 0;i