summaryrefslogtreecommitdiff
path: root/source4/lib/talloc/talloc.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-08-28 18:21:21 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:16:53 -0500
commit59057c8d56629a941ab412fa195dea7c8c486b21 (patch)
tree0ce8b1b713f7c95a70801b1074654c4187c37728 /source4/lib/talloc/talloc.h
parent3ddab071eb81023fa99e69d0a8a2d696cf56db70 (diff)
downloadsamba-59057c8d56629a941ab412fa195dea7c8c486b21.tar.gz
samba-59057c8d56629a941ab412fa195dea7c8c486b21.tar.bz2
samba-59057c8d56629a941ab412fa195dea7c8c486b21.zip
r17895: - talloc_increase_ref_count() can fail
- make talloc_reference() typesafe when gcc >= 3 is used metze (This used to be commit 933d1b47ad614d02cc02b602e704948b342febdb)
Diffstat (limited to 'source4/lib/talloc/talloc.h')
-rw-r--r--source4/lib/talloc/talloc.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/source4/lib/talloc/talloc.h b/source4/lib/talloc/talloc.h
index f080f0498d..9d6edd88ba 100644
--- a/source4/lib/talloc/talloc.h
+++ b/source4/lib/talloc/talloc.h
@@ -64,11 +64,13 @@ typedef void TALLOC_CTX;
/* this extremely strange macro is to avoid some braindamaged warning
stupidity in gcc 4.1.x */
#define talloc_steal(ctx, ptr) ({ _TALLOC_TYPEOF(ptr) __talloc_steal_ret = (_TALLOC_TYPEOF(ptr))_talloc_steal((ctx),(ptr)); __talloc_steal_ret; })
+#define talloc_reference(ctx, ptr) (_TALLOC_TYPEOF(ptr))_talloc_reference((ctx),(ptr))
#else
#define talloc_set_destructor(ptr, function) \
_talloc_set_destructor((ptr), (int (*)(void *))(function))
#define _TALLOC_TYPEOF(ptr) void *
#define talloc_steal(ctx, ptr) (_TALLOC_TYPEOF(ptr))_talloc_steal((ctx),(ptr))
+#define talloc_reference(ctx, ptr) (_TALLOC_TYPEOF(ptr))_talloc_reference((ctx),(ptr))
#endif
/* useful macros for creating type checked pointers */
@@ -107,8 +109,8 @@ typedef void TALLOC_CTX;
/* The following definitions come from talloc.c */
void *_talloc(const void *context, size_t size);
void _talloc_set_destructor(const void *ptr, int (*destructor)(void *));
-void talloc_increase_ref_count(const void *ptr);
-void *talloc_reference(const void *context, const void *ptr);
+int talloc_increase_ref_count(const void *ptr);
+void *_talloc_reference(const void *context, const void *ptr);
int talloc_unlink(const void *context, void *ptr);
const char *talloc_set_name(const void *ptr, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
void talloc_set_name_const(const void *ptr, const char *name);