jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java
changeset 15346 3f6fd93fec9a
parent 12457 c348e06f0e82
--- a/jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java	Wed Jul 05 18:34:52 2017 +0200
+++ b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java	Thu Jan 10 20:26:00 2013 -0800
@@ -258,6 +258,23 @@
               addLocalVariable(l.getName(), Type.getType(l.getSignature()),
                                l.getIndex(), start, end);
             }
+          } else if (a instanceof LocalVariableTypeTable) {
+             LocalVariable[] lv = ((LocalVariableTypeTable) a).getLocalVariableTypeTable();
+             removeLocalVariables();
+             for (int k = 0; k < lv.length; k++) {
+                 LocalVariable l = lv[k];
+                 InstructionHandle start = il.findHandle(l.getStartPC());
+                 InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength());
+                 // Repair malformed handles
+                 if (null == start) {
+                     start = il.getStart();
+                 }
+                 if (null == end) {
+                     end = il.getEnd();
+                 }
+                 addLocalVariable(l.getName(), Type.getType(l.getSignature()), l
+                         .getIndex(), start, end);
+              }
           } else
             addCodeAttribute(a);
         }