Procházet zdrojové kódy

Fix 470658: Corrupted Local Variable Table

tags/V1_8_8
Andy Clement před 8 roky
rodič
revize
fd87bd57bd

+ 10
- 0
weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java Zobrazit soubor

@@ -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()) {

Načítá se…
Zrušit
Uložit