fix: prevent size_t overflow in object_compactor doubling

capacity() * 2 wraps when the compaction region exceeds SIZE_MAX / 2,
which is only possible on 32-bit systems; malloc then returns an
undersized buffer and the memcpy of the existing contents writes past
it. Grow to exactly the required size in that case.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 file changed