diff options
Diffstat (limited to 'core/mp_common.h')
-rw-r--r-- | core/mp_common.h | 52 |
1 files changed, 3 insertions, 49 deletions
diff --git a/core/mp_common.h b/core/mp_common.h index 119f11fb3b..4abbe70caf 100644 --- a/core/mp_common.h +++ b/core/mp_common.h @@ -22,60 +22,14 @@ #include <stdlib.h> #include <stdbool.h> +#include "compat/compiler.h" +#include "core/mp_talloc.h" + // both int64_t and double should be able to represent this exactly #define MP_NOPTS_VALUE (-1LL<<63) #define ROUND(x) ((int)((x) < 0 ? (x) - 0.5 : (x) + 0.5)) -#define MP_EXPAND_ARGS(...) __VA_ARGS__ - -#define MP_TALLOC_ELEMS(p) (talloc_get_size(p) / sizeof((p)[0])) -#define MP_GROW_ARRAY(p, nextidx) do { \ - if ((nextidx) == MP_TALLOC_ELEMS(p)) \ - p = talloc_realloc_size(NULL, p, talloc_get_size(p) * 2); } while (0) -#define MP_RESIZE_ARRAY(ctx, p, count) do { \ - p = talloc_realloc_size((ctx), p, (count) * sizeof(p[0])); } while (0) - - -#define MP_TARRAY_GROW(ctx, p, nextidx) \ - do { \ - size_t nextidx_ = (nextidx); \ - size_t nelems_ = MP_TALLOC_ELEMS(p); \ - if (nextidx_ >= nelems_) \ - p = talloc_realloc_size((ctx), p, \ - (nextidx_ + 1) * sizeof((p)[0]) * 2);\ - } while (0) - -#define MP_TARRAY_APPEND(ctx, p, idxvar, ...) \ - do { \ - MP_TARRAY_GROW(ctx, p, idxvar); \ - p[idxvar] = (MP_EXPAND_ARGS(__VA_ARGS__)); \ - idxvar++; \ - } while (0) - -#define talloc_struct(ctx, type, ...) \ - talloc_memdup(ctx, &(type) MP_EXPAND_ARGS(__VA_ARGS__), sizeof(type)) - -#ifdef __GNUC__ - -/** Use gcc attribute to check printf fns. a1 is the 1-based index of - * the parameter containing the format, and a2 the index of the first - * argument. **/ -#ifdef __MINGW32__ -// MinGW maps "printf" to the non-standard MSVCRT functions, even if -// __USE_MINGW_ANSI_STDIO is defined and set to 1. We need to use "gnu_printf", -// which isn't necessarily available on other GCC compatible compilers. -#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (gnu_printf, a1, a2))) -#else -#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (printf, a1, a2))) -#endif - -#else - -#define PRINTF_ATTRIBUTE(a1, a2) - -#endif - extern const char *mplayer_version; char *mp_format_time(double time, bool fractions); |