summaryrefslogtreecommitdiffstats
path: root/talloc.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-08-19 03:01:16 +0300
committerUoti Urpala <uau@mplayer2.org>2011-08-19 03:01:16 +0300
commit6ec60c976f6fa990ed1c7efa0ceb7e7634d163c7 (patch)
tree4f567b7f3d50b258511f40f901d3f75719d695d9 /talloc.c
parenta7fee50ca0489eee0518c58b57a1e87f081bd573 (diff)
downloadmpv-6ec60c976f6fa990ed1c7efa0ceb7e7634d163c7.tar.bz2
mpv-6ec60c976f6fa990ed1c7efa0ceb7e7634d163c7.tar.xz
talloc.[ch]: remove "type safety" hack that violates C types
The destructors used by talloc take a "void *" first parameter. However talloc.h had a #define hack that treated the destructor as a function taking first parameter of type "typeof(ptr)" where ptr is the pointer the destructor is set for. I suppose this was done to add some kind of "type safety" against adding a destructor expecting another type of pointer; however this hack is questionable and violates the real C level typing. Remove the hack from the header and adjust talloc.c to avoid a warning about a C type violation that became visible after removing the hack.
Diffstat (limited to 'talloc.c')
-rw-r--r--talloc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/talloc.c b/talloc.c
index 63550cf4d4..87842c5acd 100644
--- a/talloc.c
+++ b/talloc.c
@@ -432,8 +432,9 @@ int talloc_increase_ref_count(const void *ptr)
this is referenced by a function pointer and should not be inline
*/
-static int talloc_reference_destructor(struct talloc_reference_handle *handle)
+static int talloc_reference_destructor(void *ptr)
{
+ struct talloc_reference_handle *handle = ptr;
struct talloc_chunk *ptr_tc = talloc_chunk_from_ptr(handle->ptr);
_TLIST_REMOVE(ptr_tc->refs, handle);
return 0;