From: David Tardon Date: Mon, 14 Aug 2023 14:32:55 +0000 (+0200) Subject: tree-wide: use LIST_POP() X-Git-Tag: v255-rc1~698^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=52e3671bf7e6321c58c6d3a6c8ad8e167259a569;p=thirdparty%2Fsystemd.git tree-wide: use LIST_POP() --- diff --git a/src/core/execute.c b/src/core/execute.c index 95349a4fb65..f9761b7239e 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -6326,8 +6326,7 @@ void exec_command_done_array(ExecCommand *c, size_t n) { ExecCommand* exec_command_free_list(ExecCommand *c) { ExecCommand *i; - while ((i = c)) { - LIST_REMOVE(command, c, i); + while ((i = LIST_POP(command, c))) { exec_command_done(i); free(i); } diff --git a/src/core/manager.c b/src/core/manager.c index 53a1b41b0ed..304abf4697a 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1257,10 +1257,8 @@ static unsigned manager_dispatch_release_resources_queue(Manager *m) { assert(m); - while ((u = m->release_resources_queue)) { + while ((u = LIST_POP(release_resources_queue, m->release_resources_queue))) { assert(u->in_release_resources_queue); - - LIST_REMOVE(release_resources_queue, m->release_resources_queue, u); u->in_release_resources_queue = false; n++; @@ -1364,12 +1362,11 @@ static unsigned manager_dispatch_gc_unit_queue(Manager *m) { gc_marker = m->gc_marker; - while ((u = m->gc_unit_queue)) { + while ((u = LIST_POP(gc_queue, m->gc_unit_queue))) { assert(u->in_gc_queue); unit_gc_sweep(u, gc_marker); - LIST_REMOVE(gc_queue, m->gc_unit_queue, u); u->in_gc_queue = false; n++; @@ -1392,10 +1389,8 @@ static unsigned manager_dispatch_gc_job_queue(Manager *m) { assert(m); - while ((j = m->gc_job_queue)) { + while ((j = LIST_POP(gc_queue, m->gc_job_queue))) { assert(j->in_gc_queue); - - LIST_REMOVE(gc_queue, m->gc_job_queue, j); j->in_gc_queue = false; n++; @@ -1459,11 +1454,10 @@ static unsigned manager_dispatch_stop_when_unneeded_queue(Manager *m) { assert(m); - while ((u = m->stop_when_unneeded_queue)) { + while ((u = LIST_POP(stop_when_unneeded_queue, m->stop_when_unneeded_queue))) { _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; assert(u->in_stop_when_unneeded_queue); - LIST_REMOVE(stop_when_unneeded_queue, m->stop_when_unneeded_queue, u); u->in_stop_when_unneeded_queue = false; n++; @@ -1500,12 +1494,11 @@ static unsigned manager_dispatch_start_when_upheld_queue(Manager *m) { assert(m); - while ((u = m->start_when_upheld_queue)) { + while ((u = LIST_POP(start_when_upheld_queue, m->start_when_upheld_queue))) { _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; Unit *culprit = NULL; assert(u->in_start_when_upheld_queue); - LIST_REMOVE(start_when_upheld_queue, m->start_when_upheld_queue, u); u->in_start_when_upheld_queue = false; n++; @@ -1542,12 +1535,11 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) { assert(m); - while ((u = m->stop_when_bound_queue)) { + while ((u = LIST_POP(stop_when_bound_queue, m->stop_when_bound_queue))) { _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; Unit *culprit = NULL; assert(u->in_stop_when_bound_queue); - LIST_REMOVE(stop_when_bound_queue, m->stop_when_bound_queue, u); u->in_stop_when_bound_queue = false; n++; @@ -2177,13 +2169,12 @@ static int manager_dispatch_target_deps_queue(Manager *m) { assert(m); - while ((u = m->target_deps_queue)) { + while ((u = LIST_POP(target_deps_queue, m->target_deps_queue))) { _cleanup_free_ Unit **targets = NULL; int n_targets; assert(u->in_target_deps_queue); - LIST_REMOVE(target_deps_queue, u->manager->target_deps_queue, u); u->in_target_deps_queue = false; /* Take an "atomic" snapshot of dependencies here, as the call below will likely modify the diff --git a/src/core/path.c b/src/core/path.c index b06b97d7124..d5651cd9d83 100644 --- a/src/core/path.c +++ b/src/core/path.c @@ -288,9 +288,8 @@ void path_free_specs(Path *p) { assert(p); - while ((s = p->specs)) { + while ((s = LIST_POP(spec, p->specs))) { path_spec_unwatch(s); - LIST_REMOVE(spec, p->specs, s); path_spec_done(s); free(s); } diff --git a/src/core/timer.c b/src/core/timer.c index 17faa5cbfbb..5a68f07e9da 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -51,8 +51,7 @@ void timer_free_values(Timer *t) { assert(t); - while ((v = t->values)) { - LIST_REMOVE(value, t->values, v); + while ((v = LIST_POP(value, t->values))) { calendar_spec_free(v->calendar_spec); free(v); } diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index 5e8869a3b71..791314e9cc7 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -345,13 +345,11 @@ int sd_dhcp_lease_get_vendor_specific(sd_dhcp_lease *lease, const void **data, s } static sd_dhcp_lease *dhcp_lease_free(sd_dhcp_lease *lease) { - assert(lease); - - while (lease->private_options) { - struct sd_dhcp_raw_option *option = lease->private_options; + struct sd_dhcp_raw_option *option; - LIST_REMOVE(options, lease->private_options, option); + assert(lease); + while ((option = LIST_POP(options, lease->private_options))) { free(option->data); free(option); } diff --git a/src/login/logind.c b/src/login/logind.c index f30f7f93704..ba3a31b0a40 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -907,8 +907,7 @@ static void manager_gc(Manager *m, bool drop_not_started) { assert(m); - while ((seat = m->seat_gc_queue)) { - LIST_REMOVE(gc_queue, m->seat_gc_queue, seat); + while ((seat = LIST_POP(gc_queue, m->seat_gc_queue))) { seat->in_gc_queue = false; if (seat_may_gc(seat, drop_not_started)) { @@ -917,8 +916,7 @@ static void manager_gc(Manager *m, bool drop_not_started) { } } - while ((session = m->session_gc_queue)) { - LIST_REMOVE(gc_queue, m->session_gc_queue, session); + while ((session = LIST_POP(gc_queue, m->session_gc_queue))) { session->in_gc_queue = false; /* First, if we are not closing yet, initiate stopping. */ @@ -934,8 +932,7 @@ static void manager_gc(Manager *m, bool drop_not_started) { } } - while ((user = m->user_gc_queue)) { - LIST_REMOVE(gc_queue, m->user_gc_queue, user); + while ((user = LIST_POP(gc_queue, m->user_gc_queue))) { user->in_gc_queue = false; /* First step: queue stop jobs */ diff --git a/src/machine/machined.c b/src/machine/machined.c index 8152bda50d1..926a8a7f2b6 100644 --- a/src/machine/machined.c +++ b/src/machine/machined.c @@ -254,8 +254,7 @@ static void manager_gc(Manager *m, bool drop_not_started) { assert(m); - while ((machine = m->machine_gc_queue)) { - LIST_REMOVE(gc_queue, m->machine_gc_queue, machine); + while ((machine = LIST_POP(gc_queue, m->machine_gc_queue))) { machine->in_gc_queue = false; /* First, if we are not closing yet, initiate stopping */ diff --git a/src/rfkill/rfkill.c b/src/rfkill/rfkill.c index c4e93737f54..be2a7f8d29a 100644 --- a/src/rfkill/rfkill.c +++ b/src/rfkill/rfkill.c @@ -257,8 +257,7 @@ static void context_save_and_clear(Context *c) { assert(c); - while ((i = c->write_queue)) { - LIST_REMOVE(queue, c->write_queue, i); + while ((i = LIST_POP(queue, c->write_queue))) { (void) save_state_write_one(i); write_queue_item_free(i); } diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index 3b77706f8fb..c361a7a4614 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -3689,8 +3689,7 @@ bool dissected_image_verity_sig_ready(const DissectedImage *image, PartitionDesi MountOptions* mount_options_free_all(MountOptions *options) { MountOptions *m; - while ((m = options)) { - LIST_REMOVE(mount_options, options, m); + while ((m = LIST_POP(mount_options, options))) { free(m->options); free(m); }