Phil & Jim, Do you have any feedback (CCC) on this Path2D patch ?
http://cr.openjdk.java.net/~lbourges/path2D/Path2D_needRoom.1/ Laurent Le 10 avr. 2015 20:51, "Jim Graham" <james.gra...@oracle.com> a écrit : > Hi Laurent, > > Adding a new method is not as simple as just sending a webrev. We'll need > to do some other internal processes to get approval for that... > > ...jim > > On 4/10/15 8:07 AM, Laurent Bourgès wrote: > >> Jim, >> >> Here is the new webrev: >> http://cr.openjdk.java.net/~lbourges/path2D/Path2D_needRoom.1/ >> >> Changes: >> - needRoom() applies your pseudo-code; see expandPointTypes() and >> expandCoords() >> - added a new public trimToSize() method to Path2D implemented by both >> Path2D.Float and Path2D.Double classes >> >> Cheers, >> Laurent >> >> 2015-04-08 22:53 GMT+02:00 Jim Graham <james.gra...@oracle.com >> <mailto:james.gra...@oracle.com>>: >> >> Hi Laurent, >> >> I'd probably do: >> >> int newsizemin = oldcount + newitems; >> if (newsizemin < oldcount) { >> // hard overflow failure - we can't even accommodate >> // new items without overflowing >> return failure, throw exception? >> } >> int newsize = <growth algorithm computation>; >> if (newsize < newsizemin) { >> // overflow in growth algorithm computation >> newsize = newsizemin; >> ... OR ... >> newsize = MAX_INT; >> } >> while (true) { >> try { >> allocate newsize; >> break; (or return?) >> } catch (OOME e) { >> if (newsize == newsizemin) { >> throw e; >> } >> } >> newsize = newsizemin + (newsize - newsizemin) / 2; >> } >> >> -- -- Laurent Bourgès