Because if the pointer is scannable (allocated by ``GC_MALLOC`` or ``GC_MALLOC_UNCOLLECTABLE`` rather than ``GC_MALLOC_ATOMIC``), then the code above does a ``calloc`` to ensure that the memory is clear and won't contain random data. So, when I realloc, I also want the new memory to be clear in case the caller doesn't fill it right away. (In our case, we're using this to grow a symbol table within the runtime, so we don't use it all immediately. This is a common type of usage.)