[PATCH 26/31] gobuffer: Remove 5 dead functions found via coverage analysis
Arnaldo Carvalho de Melo <[email protected]> Wed, 29 Jul 2026 16:07:26 -0300
| Newsgroups | org.kernel.vger.dwarves,org.kernel.vger.bpf |
|---|---|
| Message-ID | <[email protected]> |
From: Arnaldo Carvalho de Melo <[email protected]> Coverage analysis showed that 5 of 10 gobuffer functions have zero callers anywhere in the codebase: gobuffer__new: never called, dead since creation in be30be91 ("gobuffer: Move the non string specific bits", 2008) gobuffer__init: only caller was gobuffer__new gobuffer__delete: never called (only __gobuffer__delete is used) gobuffer__compress: last caller removed in 29fce8dc ("strings: use BTF's string APIs for strings management", 2020) gobuffer__sort: added in 2046cc50 for kfunc sorting (2024), caller removed in c5677178 ("btf_encoder: Refactor btf_encoder__tag_kfuncs()", 2025) Removing them also drops the stdio.h and zlib.h includes and the GOBUFFER__ZCHUNK constant that only gobuffer__compress used. Before: 10 functions, 152 lines, 29% line coverage. After: 5 functions, 77 lines, 55% line coverage. Assisted-by: Claude:claude-sonnet-4-5 Signed-off-by: Arnaldo Carvalho de Melo <[email protected]> --- gobuffer.c | 74 ------------------------------------------------------ gobuffer.h | 8 ------ 2 files changed, 82 deletions(-) diff --git a/gobuffer.c b/gobuffer.c index c439c48bb775593f..beeb677cfc3d7617 100644 --- a/gobuffer.c +++ b/gobuffer.c @@ -11,33 +11,12 @@ #include <search.h> #include <stdint.h> #include <stdlib.h> -#include <stdio.h> #include <string.h> -#include <zlib.h> #include <errno.h> #include "dutil.h" #define GOBUFFER__BCHUNK (8 * 1024) -#define GOBUFFER__ZCHUNK (8 * 1024) - -void gobuffer__init(struct gobuffer *gb) -{ - gb->entries = NULL; - gb->nr_entries = gb->allocated_size = 0; - /* 0 == NULL */ - gb->index = 1; -} - -struct gobuffer *gobuffer__new(void) -{ - struct gobuffer *gb = malloc(sizeof(*gb)); - - if (gb != NULL) - gobuffer__init(gb); - - return gb; -} void __gobuffer__delete(struct gobuffer *gb) { @@ -47,12 +26,6 @@ void __gobuffer__delete(struct gobuffer *gb) zfree(&gb->entries); } -void gobuffer__delete(struct gobuffer *gb) -{ - __gobuffer__delete(gb); - free(gb); -} - void *gobuffer__ptr(const struct gobuffer *gb, unsigned int s) { return s ? gb->entries + s : NULL; @@ -102,50 +75,3 @@ void gobuffer__copy(const struct gobuffer *gb, void *dest) } } -void gobuffer__sort(struct gobuffer *gb, unsigned int size, int (*compar)(const void *, const void *)) -{ - qsort(gb->entries, gb->nr_entries, size, compar); -} - -const void *gobuffer__compress(struct gobuffer *gb, unsigned int *size) -{ - z_stream z = { - .zalloc = Z_NULL, - .zfree = Z_NULL, - .opaque = Z_NULL, - .avail_in = gobuffer__size(gb), - .next_in = (Bytef *)(gobuffer__entries(gb) ? : ""), - }; - void *bf = NULL; - unsigned int bf_size = 0; - - if (deflateInit(&z, Z_BEST_COMPRESSION) != Z_OK) - goto out_free; - - do { - const unsigned int new_bf_size = bf_size + GOBUFFER__ZCHUNK; - void *nbf = realloc(bf, new_bf_size); - - if (nbf == NULL) - goto out_close_and_free; - - bf = nbf; - z.avail_out = GOBUFFER__ZCHUNK; - z.next_out = (Bytef *)bf + bf_size; - bf_size = new_bf_size; - if (deflate(&z, Z_FINISH) == Z_STREAM_ERROR) - goto out_close_and_free; - } while (z.avail_out == 0); - - deflateEnd(&z); - *size = bf_size - z.avail_out; -out: - return bf; - -out_close_and_free: - deflateEnd(&z); -out_free: - free(bf); - bf = NULL; - goto out; -} diff --git a/gobuffer.h b/gobuffer.h index cd218b629898307f..f9c461fec87c172f 100644 --- a/gobuffer.h +++ b/gobuffer.h @@ -13,16 +13,10 @@ struct gobuffer { unsigned int allocated_size; }; -struct gobuffer *gobuffer__new(void); - -void gobuffer__init(struct gobuffer *gb); -void gobuffer__delete(struct gobuffer *gb); void __gobuffer__delete(struct gobuffer *gb); void gobuffer__copy(const struct gobuffer *gb, void *dest); -void gobuffer__sort(struct gobuffer *gb, unsigned int size, int (*compar)(const void *, const void *)); - int gobuffer__add(struct gobuffer *gb, const void *s, unsigned int len); int gobuffer__allocate(struct gobuffer *gb, unsigned int len); @@ -43,6 +37,4 @@ static inline unsigned int gobuffer__size(const struct gobuffer *gb) void *gobuffer__ptr(const struct gobuffer *gb, unsigned int s); -const void *gobuffer__compress(struct gobuffer *gb, unsigned int *size); - #endif /* _GOBUFFER_H_ */ -- 2.55.0