From 73a5417950a2d21a397597c05521725f3d125993 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 17 Dec 2013 02:18:16 +0100 Subject: Merge mp_talloc.h into ta/ta_talloc.h --- audio/audio.c | 2 +- demux/demux_mf.c | 1 - demux/mf.c | 1 - mpvcore/codecs.c | 2 +- mpvcore/mp_common.h | 2 +- mpvcore/mp_talloc.h | 59 ---------------------------------------------------- osdep/io.c | 6 ++---- stream/rar.c | 2 +- stream/stream_lavf.c | 2 +- ta/ta_talloc.h | 38 +++++++++++++++++++++++++++++++++ 10 files changed, 45 insertions(+), 70 deletions(-) delete mode 100644 mpvcore/mp_talloc.h diff --git a/audio/audio.c b/audio/audio.c index b40ef6fab3..a5cf52f5b3 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -19,8 +19,8 @@ #include +#include "talloc.h" #include "mpvcore/mp_common.h" -#include "mpvcore/mp_talloc.h" #include "audio.h" static void update_redundant_info(struct mp_audio *mpa) diff --git a/demux/demux_mf.c b/demux/demux_mf.c index fbcf3da961..1eea59a058 100644 --- a/demux/demux_mf.c +++ b/demux/demux_mf.c @@ -28,7 +28,6 @@ #include "talloc.h" #include "config.h" #include "mpvcore/mp_msg.h" -#include "mpvcore/mp_talloc.h" #include "stream/stream.h" #include "demux.h" diff --git a/demux/mf.c b/demux/mf.c index 7b5b7aee3e..e50e10b43c 100644 --- a/demux/mf.c +++ b/demux/mf.c @@ -40,7 +40,6 @@ #include "mpvcore/mp_msg.h" #include "stream/stream.h" #include "options/path.h" -#include "mpvcore/mp_talloc.h" #include "mf.h" diff --git a/mpvcore/codecs.c b/mpvcore/codecs.c index 23f5402fc6..b5a07cf999 100644 --- a/mpvcore/codecs.c +++ b/mpvcore/codecs.c @@ -16,7 +16,7 @@ */ #include -#include "mpvcore/mp_talloc.h" +#include "talloc.h" #include "mpvcore/bstr.h" #include "mpvcore/mp_msg.h" #include "codecs.h" diff --git a/mpvcore/mp_common.h b/mpvcore/mp_common.h index ab1ccb9451..9e751ee851 100644 --- a/mpvcore/mp_common.h +++ b/mpvcore/mp_common.h @@ -24,7 +24,7 @@ #include #include "compat/compiler.h" -#include "mpvcore/mp_talloc.h" +#include "talloc.h" // both int64_t and double should be able to represent this exactly #define MP_NOPTS_VALUE (-1LL<<63) diff --git a/mpvcore/mp_talloc.h b/mpvcore/mp_talloc.h deleted file mode 100644 index eb62a21109..0000000000 --- a/mpvcore/mp_talloc.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * This file is part of mpv. - * - * mpv is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * mpv is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with mpv; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef MPV_TALLOC_H -#define MPV_TALLOC_H - -#include "talloc.h" -#include "compat/compiler.h" - -#define MP_TALLOC_ELEMS(p) (talloc_get_size(p) / sizeof((p)[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); \ - if (nextidx_ >= MP_TALLOC_ELEMS(p)) \ - MP_RESIZE_ARRAY(ctx, p, (nextidx_ + 1) * 2);\ - } while (0) - -#define MP_GROW_ARRAY(p, nextidx) MP_TARRAY_GROW(NULL, p, nextidx) - -#define MP_TARRAY_APPEND(ctx, p, idxvar, ...) \ - do { \ - MP_TARRAY_GROW(ctx, p, idxvar); \ - (p)[(idxvar)] = (MP_EXPAND_ARGS(__VA_ARGS__));\ - (idxvar)++; \ - } while (0) - -// Doesn't actually free any memory, or do any other talloc calls. -#define MP_TARRAY_REMOVE_AT(p, idxvar, at) \ - do { \ - size_t at_ = (at); \ - assert(at_ <= (idxvar)); \ - memmove((p) + at_, (p) + at_ + 1, \ - ((idxvar) - at_ - 1) * sizeof((p)[0])); \ - (idxvar)--; \ - } while (0) - -#define talloc_struct(ctx, type, ...) \ - talloc_memdup(ctx, &(type) MP_EXPAND_ARGS(__VA_ARGS__), sizeof(type)) - -#endif diff --git a/osdep/io.c b/osdep/io.c index e816cc714d..19f0be1108 100644 --- a/osdep/io.c +++ b/osdep/io.c @@ -20,6 +20,8 @@ #include +#include "talloc.h" + #include "config.h" #include "osdep/io.h" @@ -46,8 +48,6 @@ bool mp_set_cloexec(int fd) #include #include -#include "talloc.h" - //copied and modified from libav //http://git.libav.org/?p=libav.git;a=blob;f=libavformat/os_support.c;h=a0fcd6c9ba2be4b0dbcc476f6c53587345cc1152;hb=HEADl30 @@ -79,8 +79,6 @@ char *mp_to_utf8(void *talloc_ctx, const wchar_t *s) #include #include -#include "mpvcore/mp_talloc.h" - //http://git.libav.org/?p=libav.git;a=blob;f=cmdutils.c;h=ade3f10ce2fc030e32e375a85fbd06c26d43a433#l161 static char** win32_argv_utf8; diff --git a/stream/rar.c b/stream/rar.c index 4147a86866..00c5c16725 100644 --- a/stream/rar.c +++ b/stream/rar.c @@ -31,8 +31,8 @@ #include +#include "talloc.h" #include "mpvcore/mp_common.h" -#include "mpvcore/mp_talloc.h" #include "stream.h" #include "rar.h" diff --git a/stream/stream_lavf.c b/stream/stream_lavf.c index 8f82aedf05..d3aaf52d85 100644 --- a/stream/stream_lavf.c +++ b/stream/stream_lavf.c @@ -29,7 +29,7 @@ #include "cookies.h" #include "mpvcore/bstr.h" -#include "mpvcore/mp_talloc.h" +#include "talloc.h" static int open_f(stream_t *stream, int mode); static char **read_icy(stream_t *stream); diff --git a/ta/ta_talloc.h b/ta/ta_talloc.h index cd41e63818..ff131a610e 100644 --- a/ta/ta_talloc.h +++ b/ta/ta_talloc.h @@ -71,4 +71,42 @@ char *ta_talloc_vasprintf_append_buffer(char *s, const char *fmt, va_list ap) TA char *ta_talloc_asprintf_append(char *s, const char *fmt, ...) TA_PRF(2, 3); char *ta_talloc_asprintf_append_buffer(char *s, const char *fmt, ...) TA_PRF(2, 3); +// mpv specific stuff - should be made part of proper TA API + +#define TA_EXPAND_ARGS(...) __VA_ARGS__ + +#define MP_TALLOC_ELEMS(p) (talloc_get_size(p) / sizeof((p)[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); \ + if (nextidx_ >= MP_TALLOC_ELEMS(p)) \ + MP_RESIZE_ARRAY(ctx, p, (nextidx_ + 1) * 2);\ + } while (0) + +#define MP_GROW_ARRAY(p, nextidx) MP_TARRAY_GROW(NULL, p, nextidx) + +#define MP_TARRAY_APPEND(ctx, p, idxvar, ...) \ + do { \ + MP_TARRAY_GROW(ctx, p, idxvar); \ + (p)[(idxvar)] = (TA_EXPAND_ARGS(__VA_ARGS__));\ + (idxvar)++; \ + } while (0) + +// Doesn't actually free any memory, or do any other talloc calls. +#define MP_TARRAY_REMOVE_AT(p, idxvar, at) \ + do { \ + size_t at_ = (at); \ + assert(at_ <= (idxvar)); \ + memmove((p) + at_, (p) + at_ + 1, \ + ((idxvar) - at_ - 1) * sizeof((p)[0])); \ + (idxvar)--; \ + } while (0) + +#define talloc_struct(ctx, type, ...) \ + talloc_memdup(ctx, &(type) TA_EXPAND_ARGS(__VA_ARGS__), sizeof(type)) + #endif -- cgit v1.2.3