summaryrefslogtreecommitdiffstats
path: root/core/mp_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/mp_common.h')
-rw-r--r--core/mp_common.h52
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);