Browse Source

Merge pull request #21 from baron1405/javaflow

JASSIST-234.  Support Javaflow NEW bytecode pattern for replacement.
tags/rel_3_19_0_ga
Shigeru Chiba 9 years ago
parent
commit
e37dbe4e33
1 changed files with 3 additions and 2 deletions
  1. 3
    2
      src/main/javassist/expr/NewExpr.java

+ 3
- 2
src/main/javassist/expr/NewExpr.java View File

@@ -140,8 +140,9 @@ public class NewExpr extends Expr {

private int canReplace() throws CannotCompileException {
int op = iterator.byteAt(newPos + 3);
if (op == Opcode.DUP)
return 4;
if (op == Opcode.DUP) // Typical single DUP or Javaflow DUP DUP2_X2 POP2
return ((iterator.byteAt(newPos + 4) == Opcode.DUP2_X2
&& iterator.byteAt(newPos + 5) == Opcode.POP2)) ? 6 : 4;
else if (op == Opcode.DUP_X1
&& iterator.byteAt(newPos + 4) == Opcode.SWAP)
return 5;

Loading…
Cancel
Save