if we know the source array is dense, the result will be too, so just use a memmove