From 4e79d160ca382125d76bab3f1d18414d6308d614 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 4 Sep 2014 19:02:10 +0400 Subject: java-decompiler: code attributes reading restored --- .../jetbrains/java/decompiler/struct/StructMethod.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/org/jetbrains/java/decompiler/struct/StructMethod.java b/src/org/jetbrains/java/decompiler/struct/StructMethod.java index b055df6..3ca4a32 100644 --- a/src/org/jetbrains/java/decompiler/struct/StructMethod.java +++ b/src/org/jetbrains/java/decompiler/struct/StructMethod.java @@ -18,7 +18,6 @@ package org.jetbrains.java.decompiler.struct; import org.jetbrains.java.decompiler.code.*; import org.jetbrains.java.decompiler.struct.attr.StructGeneralAttribute; import org.jetbrains.java.decompiler.struct.consts.ConstantPool; -import org.jetbrains.java.decompiler.struct.lazy.LazyLoader; import org.jetbrains.java.decompiler.util.DataInputFullStream; import org.jetbrains.java.decompiler.util.VBStyleCollection; @@ -55,7 +54,7 @@ public class StructMethod extends StructMember { private int codeFullLength = 0; private InstructionSequence seq; private boolean expanded = false; - + private VBStyleCollection codeAttributes; public StructMethod(DataInputFullStream in, StructClass clStruct) throws IOException { classStruct = clStruct; @@ -70,6 +69,10 @@ public class StructMethod extends StructMember { descriptor = values[1]; attributes = readAttributes(in, pool); + if (codeAttributes != null) { + attributes.addAllWithKey(codeAttributes); + codeAttributes = null; + } } @Override @@ -87,12 +90,12 @@ public class StructMethod extends StructMember { localVariables = in.readUnsignedShort(); codeLength = in.readInt(); in.discard(codeLength); - int exc_length = in.readUnsignedShort(); - in.discard(exc_length * 8); - codeFullLength = codeLength + exc_length * 8 + 2; + int excLength = in.readUnsignedShort(); + in.discard(excLength * 8); + codeFullLength = codeLength + excLength * 8 + 2; } - LazyLoader.skipAttributes(in); + codeAttributes = readAttributes(in, pool); return null; } @@ -115,6 +118,7 @@ public class StructMethod extends StructMember { } } + @SuppressWarnings("AssignmentToForLoopParameter") private InstructionSequence parseBytecode(DataInputFullStream in, int length, ConstantPool pool) throws IOException { VBStyleCollection instructions = new VBStyleCollection(); -- cgit v1.2.3