diff --git a/CHANGELOG b/CHANGELOG index e2fe0a23..0f2bc6e5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -69,6 +69,9 @@ HISTORY ++ Bugfixes: + 2011-10-13: Simon Goldschmidt + * def.h, timers.c: fixed bug #34541: LWIP_U32_DIFF is unnecessarily complex + 2011-10-13: Simon Goldschmidt * sockets.c, api_lib.c: fixed bug #34540: compiler error when CORE_LOCKING is used and not all protocols are enabled diff --git a/src/core/timers.c b/src/core/timers.c index 5ae6d0c4..c8ead4e7 100644 --- a/src/core/timers.c +++ b/src/core/timers.c @@ -426,7 +426,7 @@ sys_check_timeouts(void) now = sys_now(); /* this cares for wraparounds */ - diff = LWIP_U32_DIFF(now, timeouts_last_time); + diff = now - timeouts_last_time; do { #if PBUF_POOL_FREE_OOSEQ diff --git a/src/include/lwip/def.h b/src/include/lwip/def.h index 9b6de6a8..73a1b560 100644 --- a/src/include/lwip/def.h +++ b/src/include/lwip/def.h @@ -47,10 +47,6 @@ extern "C" { #define NULL ((void *)0) #endif -/** Get the absolute difference between 2 u32_t values (correcting overflows) - * 'a' is expected to be 'higher' (without overflow) than 'b'. */ -#define LWIP_U32_DIFF(a, b) (((a) >= (b)) ? ((a) - (b)) : (((a) + ((b) ^ 0xFFFFFFFF) + 1))) - /* Endianess-optimized shifting of two u8_t to create one u16_t */ #if BYTE_ORDER == LITTLE_ENDIAN #define LWIP_MAKE_U16(a, b) ((a << 8) | b)