Re: [PATCH v2 7/7] unpack-trees: free cache_entry array members for merges
- From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
- Date
- Jun 2, 2013, 17:54 UTC
- Message-ID
- <51AB86BB.3080203@lsrfire.ath.cx>
- In-Reply-To
- <CAMP44s2ym5UEPo8kr6YKf1x_P_0L+o_9vWdCTA6MPDQsRy7d1A@mail.gmail.com>
Am 02.06.2013 19:25, schrieb Felipe Contreras:
Show 11 quoted lines
> On Sun, Jun 2, 2013 at 10:46 AM, René Scharfe
> <rene.scharfe@lsrfire.ath.cx> wrote:
>> + for (i = 0; i < n; i++) {
>> + struct cache_entry *ce = src[i + o->merge];
>> + if (ce != o->df_conflict_entry)
>
> It's possible that ce is NULL, but you didn't add that check because
> free(NULL) still works? Or because ce cannot be NULL?
>
> If it's the former, I think it's clearer if we check that ce is not
> NULL either way.It is NULL if one tree misses an entry (e.g. a new or removed file). free handles NULL and we generally avoid duplicating its NULL-check.
You're probably referring to the non-merge case as the example for checking. That one is different, though, because there we call do_add_entry instead of free, which does not handle NULL. And it doesn't have to, as it is mostly called through add_entry, which never passes NULL.
René