Re: [PATCH] xrealloc: do not reuse pointer freed by zero-length realloc()
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Sep 3, 2020, 03:50 UTC
- Message-ID
- <20200903035008.GF4035286@google.com>
- In-Reply-To
- <xmqq3641ebep.fsf@gitster.c.googlers.com>
Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:
Show 14 quoted lines
>> If we do handle it up-front, then I think we'd actually want:
>>
>> if (!size) {
>> free(ptr);
>> return xmalloc(0);
>> }
>>
>> (i.e., to never return NULL for consistency with xmalloc() and
>> xcalloc()).
>
> Makes sense. I suspect that this is optimizing for a wrong case,
> but in practice that should not matter. Not having to worry about
> a request to resize to 0-byte in the remainder of the function is
> actually a plus for readability, I would say.I agree with both points: if we were repeatedly shrinking and growing a buffer and cared about its performance, then we'd want the first version, and since we aren't, we should prefer this version that is more readable.
Thanks, Jonathan