From 9a92aea27bad2f5603ca85e0d0716c679a6b686c Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Thu, 11 Oct 2012 15:08:04 +0300 Subject: avutil: Add functions for allocating opaque contexts for algorithms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current API where the plain size is exposed is not of much use - in most cases it is allocated dynamically anyway. If allocated e.g. on the stack via an uint8_t array, there's no guarantee that the struct's members are aligned properly (unless the array is overallocated and the opaque pointer within it manually aligned to some unspecified alignment). Signed-off-by: Martin Storsjö --- libavutil/tree.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libavutil/tree.c') diff --git a/libavutil/tree.c b/libavutil/tree.c index 0e68bb75f1..55dcbc59a7 100644 --- a/libavutil/tree.c +++ b/libavutil/tree.c @@ -28,7 +28,14 @@ typedef struct AVTreeNode { int state; } AVTreeNode; +#if FF_API_CONTEXT_SIZE const int av_tree_node_size = sizeof(AVTreeNode); +#endif + +struct AVTreeNode *av_tree_node_alloc(void) +{ + return av_mallocz(sizeof(struct AVTreeNode)); +} void *av_tree_find(const AVTreeNode *t, void *key, int (*cmp)(void *key, const void *b), void *next[2]) -- cgit v1.2.3