{
OperationSideEffect sideEffect = methodChecker.isMethodSafe(sig, base, args);
if (sideEffect == OperationSideEffect.UNSAFE)
throw new AnalyzerException(insn, "Unknown method " + sig + " encountered");
else if (sideEffect == OperationSideEffect.SAFE)
sideEffects.add(new MethodSideEffectCall(sig, base, args));
}
MethodCallValue.VirtualMethodCallValue toReturn;
toReturn = new MethodCallValue.VirtualMethodCallValue(methodInsn.owner, methodInsn.name, methodInsn.desc, args, base);
if (toReturn.isConstructor() && linkedFrame != null)
linkedFrame.replaceValues(base, toReturn);
else if (methodChecker != null && methodChecker.isFluentChaining(sig))
linkedFrame.replaceValues(base, toReturn);
return toReturn;
}
else
{
if (methodChecker != null)
{
OperationSideEffect sideEffect = methodChecker.isStaticMethodSafe(sig);
if (sideEffect == OperationSideEffect.UNSAFE)
throw new AnalyzerException(insn, "Unknown method " + sig + " encountered");
else if (sideEffect == OperationSideEffect.SAFE)
sideEffects.add(new MethodSideEffectCall(sig, null, args));
}
return new MethodCallValue.StaticMethodCallValue(methodInsn.owner, methodInsn.name, methodInsn.desc, args);
}
}
case INVOKEDYNAMIC: