Browse Source

Fix !HAVE_TYPEOF case by using new typesafe_cb.

Rusty Russell 18 years ago
parent
commit
58785e0bf9
2 changed files with 5 additions and 5 deletions
  1. 3 1
      talloc/_info.c
  2. 2 4
      talloc/talloc.h

+ 3 - 1
talloc/_info.c

@@ -94,8 +94,10 @@ int main(int argc, char *argv[])
 	if (argc != 2)
 		return 1;
 
-	if (strcmp(argv[1], "depends") == 0)
+	if (strcmp(argv[1], "depends") == 0) {
+		printf("typesafe_cb\n");
 		return 0;
+	}
 
 	return 1;
 }

+ 2 - 4
talloc/talloc.h

@@ -27,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
@@ -171,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