From 18ae3d98d97ca35da106f66f547bce64b4be31ee Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Fri, 17 Apr 2015 14:06:31 +0200 Subject: [PATCH] sd-device: simplify enumerator hacks Boolean arithmetic is great, use it! if (a && !b) return 1; if (!a && b) return -1, is equivalent to if (a != b) return a - b; Furthermore: r = false; if (condition) r = true; is equivalent to: r = condition; --- src/libsystemd/sd-device/device-enumerator.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index d59da7d88f3..4de36d54e19 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -273,7 +273,7 @@ int device_enumerator_add_match_is_initialized(sd_device_enumerator *enumerator) static int device_compare(const void *_a, const void *_b) { sd_device *a = (sd_device *)_a, *b = (sd_device *)_b; const char *devpath_a, *devpath_b, *sound_a; - bool delay_a = false, delay_b = false; + bool delay_a, delay_b; assert_se(sd_device_get_devpath(a, &devpath_a) >= 0); assert_se(sd_device_get_devpath(b, &devpath_b) >= 0); @@ -312,17 +312,10 @@ static int device_compare(const void *_a, const void *_b) { } /* md and dm devices are enumerated after all other devices */ - if (strstr(devpath_a, "/block/md") || strstr(devpath_a, "/block/dm-")) - delay_a = true; - - if (strstr(devpath_b, "/block/md") || strstr(devpath_b, "/block/dm-")) - delay_b = true; - - if (delay_a && !delay_b) - return 1; - - if (!delay_a && delay_b) - return -1; + delay_a = strstr(devpath_a, "/block/md") || strstr(devpath_a, "/block/dm-"); + delay_b = strstr(devpath_b, "/block/md") || strstr(devpath_b, "/block/dm-"); + if (delay_a != delay_b) + return delay_a - delay_b; return strcmp(devpath_a, devpath_b); }