for transform various Shapes use
public void transform(float source, int sourceOffset, float destination, int destOffset, int numberOfPoints)
which uses safety so you can have same destination and source, but at a performance loss as noted by this comment
//TODO performance can be improved by removing the safety to the destination array
Since simple Shape.transform() guarantees that it won't change existing shape but create a new one, this safety is now redundant and can be removed.