Define side-effect-safe MIN and MAX macros and remove duplicate definitions from...
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 28 Jul 2009 13:49:46 +0000 (13:49 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 28 Jul 2009 13:49:46 +0000 (13:49 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209400 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_alsa.c
channels/chan_console.c
channels/chan_oss.c
channels/chan_sip.c
channels/chan_usbradio.c
include/asterisk/utils.h
main/poll.c

index 48d7186..ffc62c8 100644 (file)
@@ -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)))
index 55be768..836895a 100644 (file)
@@ -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"
index 9b2201a..a58c4b6 100644 (file)
@@ -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;
index 4d89ae0..6b9f39a 100644 (file)
@@ -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)
index b8e9d70..dd19334 100644 (file)
@@ -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 */
 
index 6f96844..0517485 100644 (file)
@@ -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
index bb93125..62e681d 100644 (file)
 #ifdef AST_POLL_COMPAT
 
 /*---------------------------------------------------------------------------*\
-                                 Macros
-\*---------------------------------------------------------------------------*/
-
-#ifndef MAX
-#define MAX(a,b)       ((a) > (b) ? (a) : (b))
-#endif
-
-/*---------------------------------------------------------------------------*\
                             Private Functions
 \*---------------------------------------------------------------------------*/