From: Arun Raghavan <git@xxxxxxxxxxxxxxxx> We use PA_CLAMP_UNLIKELY in volume.h, which clients might use, so we need to make sure the macros is available in exported headers. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=89515 --- src/pulse/util.h | 31 +++++++++++++++++++++++++++++++ src/pulse/volume.h | 1 + src/pulsecore/macro.h | 28 ---------------------------- src/pulsecore/sconv-s16le.c | 2 ++ src/pulsecore/sconv.c | 2 ++ 5 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/pulse/util.h b/src/pulse/util.h index e4a62da..6074638 100644 --- a/src/pulse/util.h +++ b/src/pulse/util.h @@ -29,6 +29,37 @@ /** \file * Assorted utility functions */ +/* The clamp macros aren't meant to be exported, per se, they're just here for our own use */ + +#ifdef __GNUC__ +#define PA_CLAMP(x, low, high) \ + __extension__ ({ \ + typeof(x) _x = (x); \ + typeof(low) _low = (low); \ + typeof(high) _high = (high); \ + ((_x > _high) ? _high : ((_x < _low) ? _low : _x)); \ + }) +#else +#define PA_CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) +#endif + +#ifdef __GNUC__ +#define PA_CLAMP_UNLIKELY(x, low, high) \ + __extension__ ({ \ + typeof(x) _x = (x); \ + typeof(low) _low = (low); \ + typeof(high) _high = (high); \ + (PA_UNLIKELY(_x > _high) ? _high : (PA_UNLIKELY(_x < _low) ? _low : _x)); \ + }) +#else +#define PA_CLAMP_UNLIKELY(x, low, high) (PA_UNLIKELY((x) > (high)) ? (high) : (PA_UNLIKELY((x) < (low)) ? (low) : (x))) +#endif + +/* We don't define a PA_CLAMP_LIKELY here, because it doesn't really + * make sense: we cannot know if it is more likely that the values is + * lower or greater than the boundaries.*/ + + PA_C_DECL_BEGIN /** Return the current username in the specified string buffer. */ diff --git a/src/pulse/volume.h b/src/pulse/volume.h index ec777b2..a0acde5 100644 --- a/src/pulse/volume.h +++ b/src/pulse/volume.h @@ -28,6 +28,7 @@ #include <pulse/gccmacro.h> #include <pulse/sample.h> #include <pulse/channelmap.h> +#include <pulse/util.h> #include <pulse/version.h> /** \page volume Volume Control diff --git a/src/pulsecore/macro.h b/src/pulsecore/macro.h index 1716f81..bd98708 100644 --- a/src/pulsecore/macro.h +++ b/src/pulsecore/macro.h @@ -121,34 +121,6 @@ static inline size_t PA_PAGE_ALIGN(size_t l) { #endif #ifdef __GNUC__ -#define PA_CLAMP(x, low, high) \ - __extension__ ({ \ - typeof(x) _x = (x); \ - typeof(low) _low = (low); \ - typeof(high) _high = (high); \ - ((_x > _high) ? _high : ((_x < _low) ? _low : _x)); \ - }) -#else -#define PA_CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) -#endif - -#ifdef __GNUC__ -#define PA_CLAMP_UNLIKELY(x, low, high) \ - __extension__ ({ \ - typeof(x) _x = (x); \ - typeof(low) _low = (low); \ - typeof(high) _high = (high); \ - (PA_UNLIKELY(_x > _high) ? _high : (PA_UNLIKELY(_x < _low) ? _low : _x)); \ - }) -#else -#define PA_CLAMP_UNLIKELY(x, low, high) (PA_UNLIKELY((x) > (high)) ? (high) : (PA_UNLIKELY((x) < (low)) ? (low) : (x))) -#endif - -/* We don't define a PA_CLAMP_LIKELY here, because it doesn't really - * make sense: we cannot know if it is more likely that the values is - * lower or greater than the boundaries.*/ - -#ifdef __GNUC__ #define PA_ROUND_UP(a, b) \ __extension__ ({ \ typeof(a) _a = (a); \ diff --git a/src/pulsecore/sconv-s16le.c b/src/pulsecore/sconv-s16le.c index c503e0e..440aba7 100644 --- a/src/pulsecore/sconv-s16le.c +++ b/src/pulsecore/sconv-s16le.c @@ -27,6 +27,8 @@ #include <stdio.h> #include <math.h> +#include <pulse/util.h> + #include <pulsecore/sconv.h> #include <pulsecore/macro.h> #include <pulsecore/endianmacros.h> diff --git a/src/pulsecore/sconv.c b/src/pulsecore/sconv.c index 0781b6e..24dd54f 100644 --- a/src/pulsecore/sconv.c +++ b/src/pulsecore/sconv.c @@ -26,6 +26,8 @@ #include <stdlib.h> #include <math.h> +#include <pulse/util.h> + #include <pulsecore/g711.h> #include <pulsecore/macro.h> #include <pulsecore/endianmacros.h> -- 2.1.0