|
|
@ -59,10 +59,13 @@ public class CodeAnalyzer implements Analyzer { |
|
|
|
|
|
|
|
|
|
|
|
if (Decompiler.useLVT) { |
|
|
|
if (Decompiler.useLVT) { |
|
|
|
AttributeInfo attr = code.findAttribute("LocalVariableTable"); |
|
|
|
AttributeInfo attr = code.findAttribute("LocalVariableTable"); |
|
|
|
if (attr != null) |
|
|
|
if (attr != null) { |
|
|
|
|
|
|
|
if (Decompiler.showLVT) |
|
|
|
|
|
|
|
Decompiler.err.println("Method: "+ma.getName()); |
|
|
|
lvt = new LocalVariableTable(bc.getMaxLocals(), |
|
|
|
lvt = new LocalVariableTable(bc.getMaxLocals(), |
|
|
|
method.classAnalyzer, attr); |
|
|
|
method.classAnalyzer, attr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int paramCount = method.getParamCount(); |
|
|
|
int paramCount = method.getParamCount(); |
|
|
|
param = new LocalInfo[paramCount]; |
|
|
|
param = new LocalInfo[paramCount]; |
|
|
@ -199,6 +202,8 @@ public class CodeAnalyzer implements Analyzer { |
|
|
|
readCode(codeArray, handlers); |
|
|
|
readCode(codeArray, handlers); |
|
|
|
if (!Decompiler.usePUSH && methodHeader.mapStackToLocal()) |
|
|
|
if (!Decompiler.usePUSH && methodHeader.mapStackToLocal()) |
|
|
|
methodHeader.removePush(); |
|
|
|
methodHeader.removePush(); |
|
|
|
|
|
|
|
if (Decompiler.removeOnetimeLocals) |
|
|
|
|
|
|
|
methodHeader.removeOnetimeLocals(); |
|
|
|
|
|
|
|
|
|
|
|
Enumeration enum = allLocals.elements(); |
|
|
|
Enumeration enum = allLocals.elements(); |
|
|
|
while (enum.hasMoreElements()) { |
|
|
|
while (enum.hasMoreElements()) { |
|
|
|