From e11e2e3bc8f21331614796abc04bb5a8450df134 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Fri, 16 Aug 2024 12:41:37 -0700 Subject: [PATCH] libsysprof: use gtk_tim_sort() for kernel kallsyms array --- src/libsysprof/sysprof-kallsyms-symbolizer.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libsysprof/sysprof-kallsyms-symbolizer.c b/src/libsysprof/sysprof-kallsyms-symbolizer.c index 939f68c7..442f20f5 100644 --- a/src/libsysprof/sysprof-kallsyms-symbolizer.c +++ b/src/libsysprof/sysprof-kallsyms-symbolizer.c @@ -22,6 +22,8 @@ #include +#include "timsort/gtktimsortprivate.h" + #include "rust-demangle.h" #include "sysprof-kallsyms-symbolizer.h" @@ -174,7 +176,11 @@ sysprof_kallsyms_symbolizer_prepare_worker (GTask *task, /* We cannot rely on sorting of kallsyms up-front from Linux in all * cases so we must sort the resulting array now. */ - g_array_sort (self->kallsyms, sort_by_address); + gtk_tim_sort (self->kallsyms->data, + self->kallsyms->len, + sizeof (KernelSymbol), + (GCompareDataFunc)sort_by_address, + NULL); /* Store a "best guess" at an lower/upper bound for the max address so that * we can avoid searching for anything unreasonably past the end of the last