Ah, wait, those constructors do copy the arrays without having to iterate the segments and grow the arrays, but they don't trim them. I'm trying to remember if there was a specific reason that we decided not to trim the arrays in those constructors, but the only "advantage" I can think of is that the new copy will have the same potential spare room for growth that the original had. But that is of questionable value so we should probably just patch the existing "construct from a Shape" constructors to trim the arrays to the required length instead...

                        ...jim

On 2/24/15 9:33 AM, Jim Graham wrote:
Hi Laurent,

On 2/24/15 6:51 AM, Laurent Bourgès wrote:
    FastPath2D would be public API. Perhaps that should be a separate
    discussion


FastPath2D is only a improvement of the Path2D class to trim arrays in
the clone() method but there is another solution: provide a new Path2D
constructor with given data arrays.
I agree it is another topic but really used by marlin to avoid too many
array resizing.

Why not just use new Path2D.Float(oldpath2d)?  It trims the arrays of
the source Path2D with minimal allocation waste...

             ...jim

Reply via email to