Re: [PATCH v3 13/17] lib min_heap: Update min_heap_push() to use min_heap_sift_up()
From: Ian Rogers
Date: Sun Apr 07 2024 - 15:11:53 EST
On Sat, Apr 6, 2024 at 9:48 AM Kuan-Wei Chiu <visitorckw@xxxxxxxxx> wrote:
>
> Update min_heap_push() to use min_heap_sift_up() rather than its origin
> inline version.
>
> Signed-off-by: Kuan-Wei Chiu <visitorckw@xxxxxxxxx>
Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
Thanks,
Ian
> ---
> include/linux/min_heap.h | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/include/linux/min_heap.h b/include/linux/min_heap.h
> index 3086612d7cd5..fe037eb5952e 100644
> --- a/include/linux/min_heap.h
> +++ b/include/linux/min_heap.h
> @@ -190,7 +190,6 @@ bool __min_heap_push(min_heap_char *heap, const void *element, size_t elem_size,
> const struct min_heap_callbacks *func, void *args)
> {
> void *data = heap->data;
> - void *child, *parent;
> int pos;
>
> if (WARN_ONCE(heap->nr >= heap->size, "Pushing on a full heap"))
> @@ -202,13 +201,7 @@ bool __min_heap_push(min_heap_char *heap, const void *element, size_t elem_size,
> heap->nr++;
>
> /* Sift child at pos up. */
> - for (; pos > 0; pos = (pos - 1) / 2) {
> - child = data + (pos * elem_size);
> - parent = data + ((pos - 1) / 2) * elem_size;
> - if (func->less(parent, child, args))
> - break;
> - func->swp(parent, child, args);
> - }
> + __min_heap_sift_up(heap, elem_size, pos, func, args);
>
> return true;
> }
> --
> 2.34.1
>