fix dfa contract IOOBE with varargs

This commit is contained in:
peter
2014-05-29 21:55:45 +02:00
parent 31be027def
commit 9c29b9548a
2 changed files with 5 additions and 1 deletions
@@ -207,7 +207,7 @@ public class StandardInstructionVisitor extends InstructionVisitor {
for (int i = 0; i < args.length; i++) {
final DfaValue arg = memState.pop();
int paramIndex = args.length - i - 1;
if (argValues != null && (paramIndex < args.length - 1 || !varargCall)) {
if (argValues != null && (paramIndex < argValues.length - 1 || !varargCall)) {
argValues[paramIndex] = arg;
}
@@ -32,6 +32,10 @@ class Contracts {
notBlank(message, "Message should not be blank", new Object(), new Object());
log(message);
}
public void vararg3(@Nullable String message) {
notBlank(message, "Message should not be blank", new Object(), new Object(), new Object(), new Object(), new Object());
log(message);
}
public void log(@NotNull String message) {
System.out.println(message);