No.

The snippet above moves to a new location, but does not copy the old data there.

The current code moves to a new location, and then **copies the content of the old chunk to the content of the new one**, even though we don't need that data.

Current code does roughly:

	new = malloc(...);
	memcpy(new, old, ...);
	free(old);

You don't need that memcpy, you shouldn't care what the new memory chunk contains.

For performance reasons, a preferable way would be:

	free(old);
	new = malloc(...);