INNER CODE UNIT · Java
findSuperOrThisCall
anggrayudi/android-hidden-api · cli/Stubifier.java:127
private static MethodInsnNode findSuperOrThisCall(ClassNode cn, MethodNode mn) {
MethodInsnNode thisCall = null;
for (AbstractInsnNode insn = mn.instructions.getFirst(); insn != null; insn = insn.getNext()) {
if (insn.getOpcode() != Opcodes.INVOKESPECIAL) continue;
MethodInsnNode call = (MethodInsnNode) insn;
if (!call.name.equals("<init>")) continue;
if (call.owner.equals(cn.superName)) return call; // super(...)
if (thisCall == null && call.owner.equals(cn.name)) thisCall = call; // this(...)
}
return thisCall;
}
private static AbstractInsnNode defaultValue(Type t) {
switch (t.getSort()) {
case Type.BOOLEAN:
case Type.CHAR:
case Type.BYTE:
case Type.SHORT: