On 6/3/20 10:36 AM, Stuart Marks wrote:
3) Integer wraparound/overflow during size computation. AS.newLength generates
this:
OutOfMemoryError: Required array length too large
(3) is the only case generated by the library. In fact, AS.hugeLength() has
oldLength and minGrowth parameters, which seems like enough detail already.
These could reasonably be formatted into the error message, something like:
private static int hugeLength(int oldLength, int minGrowth) {
int minLength = oldLength + minGrowth;
if (minLength < 0) { // overflow
throw new OutOfMemoryError(
String.format("Required array length %d + %d too large",
oldLength, minGrowth));
}
Would this help? If this were added, would it be sufficient to allow various use
sites to convert to use AS.newLength? (Except possibly StringJoiner.)
Anything further on this? Should I file a bug/rfe for this? Also, I could update
the docs to explain ArraysSupport.newLength better, per my earlier exchange with
David Holmes.
s'marks