First cut of hashing routines.
[ccan] / talloc / talloc.h
index 510cff7599f8d959480b84882b49bd76cfe1e43c..5566a040440a9e71f5d6947ce8f1d60cdddc3443 100644 (file)
@@ -1,9 +1,6 @@
 #ifndef CCAN_TALLOC_H
 #define CCAN_TALLOC_H
 /* 
-   Unix SMB/CIFS implementation.
-   Samba temporary memory allocation functions
-
    Copyright (C) Andrew Tridgell 2004-2005
    Copyright (C) Stefan Metzmacher 2006
    
@@ -30,6 +27,7 @@
 #include <stdio.h>
 #include <stdarg.h>
 #include "config.h"
+#include "typesafe_cb/typesafe_cb.h"
 
 /*
   this uses a little trick to allow __LINE__ to be stringified
@@ -174,10 +172,7 @@ int talloc_free(void *ptr);
  *     talloc, talloc_free
  */
 #define talloc_set_destructor(ptr, function)                                 \
-       do {                                                                  \
-               int (*_talloc_destructor_fn)(_TALLOC_TYPEOF(ptr)) = (function);       \
-               _talloc_set_destructor((ptr), (int (*)(void *))_talloc_destructor_fn); \
-       } while(0)
+       _talloc_set_destructor((ptr), typesafe_cb(int, (function), (ptr)))
 
 /**
  * talloc_zero - allocate zeroed dynamic memory for a type