I've started the CCC process by creating a bug.

One quick question - do we want to port these changes back to 8u60? If so, then we would not be able to port the new Path2D method since there are no API changes allowed in 8u60. If not, then there is no issue.

Phil?

                        ...jim

On 4/17/15 3:09 AM, Laurent Bourgès wrote:
Phil & Jim,

Do you have any feedback (CCC) on this Path2D patch ?

http://cr.openjdk.java.net/~lbourges/path2D/Path2D_needRoom.1/
<http://cr.openjdk.java.net/%7Elbourges/path2D/Path2D_needRoom.1/>

Laurent


Le 10 avr. 2015 20:51, "Jim Graham" <james.gra...@oracle.com
<mailto: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>
        <mailto: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

Reply via email to