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:

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…