Define array cleanup funcs through macros (#41559)

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2026-04-10 21:45:14 +02:00
committed by GitHub
43 changed files with 136 additions and 207 deletions
+1 -1
View File
@@ -451,7 +451,7 @@ int catalog_update(const char *database, const char *root, const char* const *di
ConfFile **files = NULL;
size_t n_files = 0;
CLEANUP_ARRAY(files, n_files, conf_file_free_many);
CLEANUP_ARRAY(files, n_files, conf_file_free_array);
r = conf_files_list_strv_full(".catalog", root,
CONF_FILES_REGULAR | CONF_FILES_FILTER_MASKED | CONF_FILES_WARN,
+10 -13
View File
@@ -21,7 +21,7 @@
#include "time-util.h"
#include "xattr-util.h"
typedef struct vacuum_info {
typedef struct VacuumInfo {
uint64_t usage;
char *filename;
@@ -30,9 +30,9 @@ typedef struct vacuum_info {
sd_id128_t seqnum_id;
uint64_t seqnum;
bool have_seqnum;
} vacuum_info;
} VacuumInfo;
static int vacuum_info_compare(const vacuum_info *a, const vacuum_info *b) {
static int vacuum_info_compare(const VacuumInfo *a, const VacuumInfo *b) {
int r;
if (a->have_seqnum && b->have_seqnum &&
@@ -49,16 +49,13 @@ static int vacuum_info_compare(const vacuum_info *a, const vacuum_info *b) {
return strcmp(a->filename, b->filename);
}
static void vacuum_info_array_free(vacuum_info *list, size_t n) {
if (!list)
return;
FOREACH_ARRAY(i, list, n)
free(i->filename);
free(list);
static void vacuum_info_done(VacuumInfo *info) {
assert(info);
info->filename = mfree(info->filename);
}
static DEFINE_ARRAY_FREE_FUNC(vacuum_info_array_free, VacuumInfo, vacuum_info_done);
static void patch_realtime(
int fd,
const char *fn,
@@ -137,7 +134,7 @@ int journal_directory_vacuum(
uint64_t sum = 0, freed = 0, n_active_files = 0;
size_t n_list = 0, i;
_cleanup_closedir_ DIR *d = NULL;
vacuum_info *list = NULL;
VacuumInfo *list = NULL;
usec_t retention_limit = 0;
int r;
@@ -280,7 +277,7 @@ int journal_directory_vacuum(
if (!GREEDY_REALLOC(list, n_list + 1))
return -ENOMEM;
list[n_list++] = (vacuum_info) {
list[n_list++] = (VacuumInfo) {
.filename = TAKE_PTR(p),
.usage = size,
.seqnum = seqnum,