summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/execute.c3
-rw-r--r--src/core/manager.c23
-rw-r--r--src/core/path.c3
-rw-r--r--src/core/timer.c3
-rw-r--r--src/libsystemd-network/sd-dhcp-lease.c8
-rw-r--r--src/login/logind.c9
-rw-r--r--src/machine/machined.c3
-rw-r--r--src/rfkill/rfkill.c3
-rw-r--r--src/shared/dissect-image.c3
9 files changed, 19 insertions, 39 deletions
diff --git a/src/core/execute.c b/src/core/execute.c
index 95349a4fb6..f9761b7239 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 53a1b41b0e..304abf4697 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 b06b97d712..d5651cd9d8 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 17faa5cbfb..5a68f07e9d 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 5e8869a3b7..791314e9cc 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 f30f7f9370..ba3a31b0a4 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 8152bda50d..926a8a7f2b 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 c4e93737f5..be2a7f8d29 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 3b77706f8f..c361a7a461 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);
}