use of com.googlecode.d2j.node.insn.DexLabelStmtNode in project dex2jar by pxb1988.
the class BaksmaliDumper method accept.
void accept(Out out, DexCodeNode code, DexCodeVisitor v) {
if (code.tryStmts != null) {
for (TryCatchNode n : code.tryStmts) {
n.accept(v);
}
}
if (code.debugNode != null) {
DexDebugVisitor ddv = v.visitDebug();
if (ddv != null) {
code.debugNode.accept(ddv);
ddv.visitEnd();
}
}
if (code.totalRegister >= 0 && code.stmts.size() > 0) {
v.visitRegister(code.totalRegister);
}
for (DexStmtNode n : code.stmts) {
if (n instanceof DexLabelStmtNode) {
n.accept(v);
} else {
out.push();
n.accept(v);
out.pop();
}
}
}
use of com.googlecode.d2j.node.insn.DexLabelStmtNode in project dex2jar by pxb1988.
the class Dex2IrAdapter method convert.
public IrMethod convert(DexCodeNode codeNode) {
if (codeNode.tryStmts != null) {
for (TryCatchNode n : codeNode.tryStmts) {
n.accept(this);
}
}
if (codeNode.debugNode != null) {
DexDebugVisitor ddv = this.visitDebug();
if (ddv != null) {
codeNode.debugNode.accept(ddv);
ddv.visitEnd();
}
}
lastIsInvokeOrFilledNewArray = false;
if (codeNode.totalRegister >= 0) {
this.visitRegister(codeNode.totalRegister);
}
for (DexStmtNode n : codeNode.stmts) {
n.accept(this);
if (n instanceof FilledNewArrayStmtNode) {
lastIsInvokeOrFilledNewArray = true;
} else if (n instanceof MethodStmtNode) {
lastIsInvokeOrFilledNewArray = !((MethodStmtNode) n).method.getReturnType().equals("V");
} else if (!(n instanceof DexLabelStmtNode)) {
lastIsInvokeOrFilledNewArray = false;
}
}
visitEnd();
return irMethod;
}
Aggregations