On Sat, May 12, 2018 at 10:00:21AM +0200, Nguyễn Thái Ngọc Duy wrote:

> @@ -3446,9 +3451,9 @@ int rearrange_squash(void)
>                       else if (!strchr(p, ' ') &&
>                                (commit2 =
>                                 lookup_commit_reference_by_name(p)) &&
> -                              commit2->util)
> +                              *commit_todo_item_at(&commit_todo, commit2))
>                               /* found by commit name */
> -                             i2 = (struct todo_item *)commit2->util
> +                             i2 = *commit_todo_item_peek(&commit_todo, 
> commit2)
>                                       - todo_list.items;

Directly dereferencing _peek() is an anti-pattern, since it may return
NULL. We know it's OK here because the earlier call to _at() would have
extended the slab. But it probably makes sense to use _at() in both
places then (or even to use _peek() for the earlier one if you want to
avoid extending, but as I said in the other message, I kind of
suspect most of these cases end up allocating slab space for most of the
commits anyway).

-Peff

Reply via email to