Search in sources :

Example 1 with LocalVar

use of com.googlecode.dex2jar.ir.LocalVar in project dex2jar by pxb1988.

the class FixVar method transform.

@Override
public void transform(IrMethod irMethod) {
    int i = 0;
    for (LocalVar var : irMethod.vars) {
        if (var.reg.trim().vt != VT.LOCAL) {
            if (var.reg.trim().vt == VT.CONSTANT) {
                Local n = new Local(i++);
                Value old = var.reg.trim();
                irMethod.stmts.insertBefore(var.start, Stmts.nAssign(n, old));
                var.reg = n;
                irMethod.locals.add(n);
            } else {
            // throw new DexExcpeption("not support");
            }
        }
    }
}
Also used : Value(com.googlecode.dex2jar.ir.expr.Value) Local(com.googlecode.dex2jar.ir.expr.Local) LocalVar(com.googlecode.dex2jar.ir.LocalVar)

Example 2 with LocalVar

use of com.googlecode.dex2jar.ir.LocalVar in project dex2jar by pxb1988.

the class CleanLabel method addVars.

private void addVars(List<LocalVar> vars, Set<LabelStmt> uselabels) {
    if (vars != null) {
        for (LocalVar var : vars) {
            uselabels.add(var.start);
            uselabels.add(var.end);
        }
    }
}
Also used : LocalVar(com.googlecode.dex2jar.ir.LocalVar)

Aggregations

LocalVar (com.googlecode.dex2jar.ir.LocalVar)2 Local (com.googlecode.dex2jar.ir.expr.Local)1 Value (com.googlecode.dex2jar.ir.expr.Value)1