private InsnList makeReturnCodeFor()

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


  private InsnList makeReturnCodeFor(MethodNode method) {
    InsnList returnCode = new InsnList();

    switch (Type.getReturnType(method.desc).getSort()) {
      case Type.VOID:
        returnCode.add(new InsnNode(Opcodes.RETURN));
        break;
      case Type.BOOLEAN:
      case Type.BYTE:
      case Type.CHAR:
      case Type.INT:
      case Type.SHORT:
        returnCode.add(new InsnNode(Opcodes.ICONST_0));
        returnCode.add(new InsnNode(Opcodes.IRETURN));
        break;
      case Type.DOUBLE:
        returnCode.add(new InsnNode(Opcodes.DCONST_0));
        returnCode.add(new InsnNode(Opcodes.DRETURN));
        break;
      case Type.FLOAT:
        returnCode.add(new InsnNode(Opcodes.FCONST_0));
        returnCode.add(new InsnNode(Opcodes.FRETURN));
        break;
      case Type.LONG:
        returnCode.add(new InsnNode(Opcodes.LCONST_0));
        returnCode.add(new InsnNode(Opcodes.LRETURN));
        break;
      default:
        returnCode.add(new InsnNode(Opcodes.ACONST_NULL));
        returnCode.add(new InsnNode(Opcodes.ARETURN));
        break;
    }

    return returnCode;
  }