Overflow check methods in CardUtil

This commit is contained in:
Zzooouhh 2017-12-23 23:01:35 +01:00 committed by GitHub
parent 86dd54e889
commit ab3128975a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -509,4 +509,24 @@ public final class CardUtil {
}
}
public static int addWithOverflowCheck(int base, int increment) {
long result = ((long) base) + increment;
if (result > Integer.MAX_VALUE) {
return Integer.MAX_VALUE;
} else if (result < Integer.MIN_VALUE) {
return Integer.MIN_VALUE;
}
return base + increment;
}
public static int subtractWithOverflowCheck(int base, int decrement) {
long result = ((long) base) - decrement;
if (result > Integer.MAX_VALUE) {
return Integer.MAX_VALUE;
} else if (result < Integer.MIN_VALUE) {
return Integer.MIN_VALUE;
}
return base - decrement;
}
}