]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
time-util: simplify overflow check
authorLennart Poettering <lennart@poettering.net>
Tue, 2 Mar 2021 20:33:35 +0000 (21:33 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 3 Mar 2021 03:16:21 +0000 (12:16 +0900)
And don't rely on 2s complement.

src/basic/time-util.h

index da6f3cd382cb50113ef7ae04578575507cb4fcc3..d716074fbe3a28bc2408643a1cec8d8bdbe60099 100644 (file)
@@ -155,16 +155,14 @@ usec_t jiffies_to_usec(uint32_t jiffies);
 bool in_utc_timezone(void);
 
 static inline usec_t usec_add(usec_t a, usec_t b) {
-        usec_t c;
 
         /* Adds two time values, and makes sure USEC_INFINITY as input results as USEC_INFINITY in output, and doesn't
          * overflow. */
 
-        c = a + b;
-        if (c < a || c < b) /* overflow check */
+        if (a > USEC_INFINITY - b) /* overflow check */
                 return USEC_INFINITY;
 
-        return c;
+        return a + b;
 }
 
 static inline usec_t usec_sub_unsigned(usec_t timestamp, usec_t delta) {