public void visitStartLocal(int reg, DexLabel label, String name, String type, String signature) { if (visitor != null) { visitor.visitStartLocal(reg, label, name, type, signature); } }
@Override public void accept(DexDebugVisitor cv) { cv.visitStartLocal(reg, label, name, type, signature); } }
@Override public Object visitFlocal(SmaliParser.FlocalContext ctx) { if (dexDebugVisitor != null) { DexLabel dexLabel = new DexLabel(); scv.visitLabel(dexLabel); int reg = m.pareReg(ctx.r.getText()); String name; String type; if (ctx.v1 != null) { Field fld = parseFieldAndUnescape("Lt;", ctx.v1.getText()); name = fld.getName(); type = fld.getType(); } else if (ctx.v2 != null) { String txt = ctx.v2.getText(); int i = findString(txt, 1, txt.length(), '\"'); name = unescapeStr(txt.substring(0, i + 1)); type = unEscapeId(txt.substring(i + 2)); } else { if (ctx.name2 != null) { name = unescapeStr(ctx.name2.getText()); } else { name = unEscapeId(ctx.name1.getText()); } type = unEscapeId(ctx.type.getText()); } String sig = ctx.sig == null ? null : unescapeStr(ctx.sig.getText()); dexDebugVisitor.visitStartLocal(reg, dexLabel, name, type, sig); } return null; }
@Override public void visitStartLocal(int reg, DexLabel label, String name, String type, String signature) { super.visitStartLocal(reg, label, name, type, signature); if (signature == null) { out.s(".local %s, %s:%s", reg(reg), BaksmaliDumper.escapeValue(name), type); } else { out.s(".local %s, %s:%s, %s", reg(reg), BaksmaliDumper.escapeValue(name), type, BaksmaliDumper.escapeValue(signature)); } }
lastEntryForReg[reg] = le; order(labelMap, address); dcv.visitStartLocal(reg, labelMap.get(address), name, type, null); LocalEntry le = new LocalEntry(name, type, signature); order(labelMap, address); dcv.visitStartLocal(reg, labelMap.get(address), name, type, signature); lastEntryForReg[reg] = le;
public void visitStartLocal(int reg, DexLabel label, String name, String type, String signature) { if (visitor != null) { visitor.visitStartLocal(reg, label, name, type, signature); } }
@Override public void accept(DexDebugVisitor cv) { cv.visitStartLocal(reg, label, name, type, signature); } }
lastEntryForReg[reg] = le; order(labelMap, address); dcv.visitStartLocal(reg, labelMap.get(address), name, type, null); LocalEntry le = new LocalEntry(name, type, signature); order(labelMap, address); dcv.visitStartLocal(reg, labelMap.get(address), name, type, signature); lastEntryForReg[reg] = le;