private void insertIfCrashingCondition()

in TransformCore/src/main/java/com/facebook/ads/injkit/crashshield/CrashShieldInjector.java [335:357]


  private void insertIfCrashingCondition(ClassNode cls, MethodNode method) {
    InsnList insnList = new InsnList();

    if ((method.access & Opcodes.ACC_STATIC) != 0) {
      insnList.add(new LdcInsnNode(Type.getObjectType(cls.name)));
    } else {
      insnList.add(new VarInsnNode(Opcodes.ALOAD, 0));
    }

    insnList.add(
        new MethodInsnNode(
            Opcodes.INVOKESTATIC,
            exceptionHandlerIName,
            "isObjectCrashing",
            "(Ljava/lang/Object;)Z",
            false));

    LabelNode skipReturn = new LabelNode();
    insnList.add(new JumpInsnNode(Opcodes.IFEQ, skipReturn));
    insnList.add(makeReturnCodeFor(method));
    insnList.add(skipReturn);
    method.instructions.insert(insnList);
  }