summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/struct/StructMethod.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/jetbrains/java/decompiler/struct/StructMethod.java')
-rw-r--r--src/org/jetbrains/java/decompiler/struct/StructMethod.java16
1 files changed, 10 insertions, 6 deletions
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<StructGeneralAttribute, String> 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<Instruction, Integer> instructions = new VBStyleCollection<Instruction, Integer>();