Browse Source

Fix 470658: Corrupted Local Variable Table

tags/V1_8_8
Andy Clement 8 years ago
parent
commit
fd87bd57bd
1 changed files with 10 additions and 0 deletions
  1. 10
    0
      weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java

+ 10
- 0
weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java View File

@@ -1324,6 +1324,16 @@ public final class LazyMethodGen implements Traceable {
}
}
}
if (!this.enclosingClass.getWorld().generateNewLvts) {
// Here the generateNewLvts option is used to control "Do not damage unusually positioned local
// variables that represent method parameters". Strictly speaking local variables that represent
// method parameters effectively have a bytecode range from 0..end_of_method - however some
// tools generate bytecode that specifies a compressed range. The code below would normally
// extend the parameter local variables to cover the full method but by setting paramSlots to -1
// here we cause the code below to avoid modifying any local vars that represent method
// parameters.
paramSlots = -1;
}

Map<InstructionHandle, Set<Integer>> duplicatedLocalMap = new HashMap<InstructionHandle, Set<Integer>>();
for (LocalVariableTag tag : localVariables.keySet()) {

Loading…
Cancel
Save