list: introduce LIST_FOREACH_BACKWARDS() macro and drop LIST_FOREACH_AFTER/BEFORE()
This commit is contained in:
+2
-5
@@ -142,11 +142,8 @@
|
||||
#define LIST_FOREACH_SAFE(name,i,n,head) \
|
||||
for ((i) = (head); (i) && (((n) = (i)->name##_next), 1); (i) = (n))
|
||||
|
||||
#define LIST_FOREACH_BEFORE(name,i,p) \
|
||||
for ((i) = (p)->name##_prev; (i); (i) = (i)->name##_prev)
|
||||
|
||||
#define LIST_FOREACH_AFTER(name,i,p) \
|
||||
for ((i) = (p)->name##_next; (i); (i) = (i)->name##_next)
|
||||
#define LIST_FOREACH_BACKWARDS(name,i,p) \
|
||||
for ((i) = (p); (i); (i) = (i)->name##_prev)
|
||||
|
||||
/* Iterate through all the members of the list p is included in, but skip over p */
|
||||
#define LIST_FOREACH_OTHERS(name,i,p) \
|
||||
|
||||
+4
-4
@@ -771,11 +771,11 @@ static Unit *device_following(Unit *u) {
|
||||
return NULL;
|
||||
|
||||
/* Make everybody follow the unit that's named after the sysfs path */
|
||||
LIST_FOREACH_AFTER(same_sysfs, other, d)
|
||||
LIST_FOREACH(same_sysfs, other, d->same_sysfs_next)
|
||||
if (startswith(UNIT(other)->id, "sys-"))
|
||||
return UNIT(other);
|
||||
|
||||
LIST_FOREACH_BEFORE(same_sysfs, other, d) {
|
||||
LIST_FOREACH_BACKWARDS(same_sysfs, other, d->same_sysfs_prev) {
|
||||
if (startswith(UNIT(other)->id, "sys-"))
|
||||
return UNIT(other);
|
||||
|
||||
@@ -802,13 +802,13 @@ static int device_following_set(Unit *u, Set **_set) {
|
||||
if (!set)
|
||||
return -ENOMEM;
|
||||
|
||||
LIST_FOREACH_AFTER(same_sysfs, other, d) {
|
||||
LIST_FOREACH(same_sysfs, other, d->same_sysfs_next) {
|
||||
r = set_put(set, other);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
LIST_FOREACH_BEFORE(same_sysfs, other, d) {
|
||||
LIST_FOREACH_BACKWARDS(same_sysfs, other, d->same_sysfs_prev) {
|
||||
r = set_put(set, other);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
+2
-2
@@ -1323,11 +1323,11 @@ static Unit *swap_following(Unit *u) {
|
||||
if (streq_ptr(s->what, s->devnode))
|
||||
return NULL;
|
||||
|
||||
LIST_FOREACH_AFTER(same_devnode, other, s)
|
||||
LIST_FOREACH(same_devnode, other, s->same_devnode_next)
|
||||
if (streq_ptr(other->what, other->devnode))
|
||||
return UNIT(other);
|
||||
|
||||
LIST_FOREACH_BEFORE(same_devnode, other, s) {
|
||||
LIST_FOREACH_BACKWARDS(same_devnode, other, s->same_devnode_prev) {
|
||||
if (streq_ptr(other->what, other->devnode))
|
||||
return UNIT(other);
|
||||
|
||||
|
||||
@@ -1154,7 +1154,7 @@ static void rule_resolve_goto(UdevRuleFile *rule_file) {
|
||||
if (!FLAGS_SET(line->type, LINE_HAS_GOTO))
|
||||
continue;
|
||||
|
||||
LIST_FOREACH_AFTER(rule_lines, i, line)
|
||||
LIST_FOREACH(rule_lines, i, line->rule_lines_next)
|
||||
if (streq_ptr(i->label, line->goto_label)) {
|
||||
line->goto_line = i;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user