From ba020fc3909c1b241358d789be991c039452749c Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" <kpfleming@digium.com> Date: Tue, 28 Jul 2009 13:49:46 +0000 Subject: [PATCH] Define side-effect-safe MIN and MAX macros and remove duplicate definitions from various files. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209400 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_alsa.c | 3 --- channels/chan_console.c | 7 ------- channels/chan_oss.c | 7 ------- channels/chan_sip.c | 4 ---- channels/chan_usbradio.c | 7 ------- include/asterisk/utils.h | 5 +++++ main/poll.c | 8 -------- 7 files changed, 5 insertions(+), 36 deletions(-) diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c index 48d718682e..ffc62c8b1c 100644 --- a/channels/chan_alsa.c +++ b/channels/chan_alsa.c @@ -591,9 +591,6 @@ static struct ast_channel *alsa_request(const char *type, int fmt, const struct static char *autoanswer_complete(const char *line, const char *word, int pos, int state) { -#ifndef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif switch (state) { case 0: if (!ast_strlen_zero(word) && !strncasecmp(word, "on", MIN(strlen(word), 2))) diff --git a/channels/chan_console.c b/channels/chan_console.c index 55be76895c..836895ac0b 100644 --- a/channels/chan_console.c +++ b/channels/chan_console.c @@ -101,13 +101,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") */ #define TEXT_SIZE 256 -#ifndef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - /*! \brief Dance, Kirby, Dance! @{ */ #define V_BEGIN " --- <(\"<) --- " #define V_END " --- (>\")> ---\n" diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 9b2201a48e..a58c4b6d47 100644 --- a/channels/chan_oss.c +++ b/channels/chan_oss.c @@ -229,13 +229,6 @@ END_CONFIG #define DEV_DSP "/dev/dsp" #endif -#ifndef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - static char *config = "oss.conf"; /* default config file */ static int oss_debug; diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 4d89ae03cb..6b9f39a14b 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -557,10 +557,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define TRUE 1 #endif -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - /* Arguments for find_peer */ #define FINDUSERS (1 << 0) #define FINDPEERS (1 << 1) diff --git a/channels/chan_usbradio.c b/channels/chan_usbradio.c index b8e9d70a97..dd19334832 100644 --- a/channels/chan_usbradio.c +++ b/channels/chan_usbradio.c @@ -351,13 +351,6 @@ END_CONFIG #define DEV_DSP "/dev/dsp" #endif -#ifndef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - static char *config = "usbradio.conf"; /* default config file */ static char *config1 = "usbradio_tune_%s.conf"; /* tune config file */ diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index 6f9684409e..0517485100 100644 --- a/include/asterisk/utils.h +++ b/include/asterisk/utils.h @@ -222,6 +222,11 @@ void ast_sha1_hash(char *output, const char *input); int ast_base64encode_full(char *dst, const unsigned char *src, int srclen, int max, int linebreaks); +#undef MIN +#define MIN(a, b) ({ typeof(a) __a = (a); typeof(b) __b = (b); ((__a > __b) ? __b : __a);}) +#undef MAX +#define MAX(a, b) ({ typeof(a) __a = (a); typeof(b) __b = (b); ((__a < __b) ? __b : __a);}) + /*! * \brief Encode data in base64 * \param dst the destination buffer diff --git a/main/poll.c b/main/poll.c index bb93125a6b..62e681dca8 100644 --- a/main/poll.c +++ b/main/poll.c @@ -83,14 +83,6 @@ #ifdef AST_POLL_COMPAT -/*---------------------------------------------------------------------------*\ - Macros -\*---------------------------------------------------------------------------*/ - -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - /*---------------------------------------------------------------------------*\ Private Functions \*---------------------------------------------------------------------------*/ -- GitLab