diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-03-31 16:56:18 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-04-08 09:28:10 +0200 |
commit | 73330f8436707b5ab46c0720ea735908948f5d27 (patch) | |
tree | 0f922bf266b936791db390ad7c1b55285ad68ff3 | |
parent | 13fab67995a0b836b92847536768703dac391b57 (diff) | |
download | samba-73330f8436707b5ab46c0720ea735908948f5d27.tar.gz samba-73330f8436707b5ab46c0720ea735908948f5d27.tar.bz2 samba-73330f8436707b5ab46c0720ea735908948f5d27.zip |
talloc: add TC_POOL_FIRST_CHUNK() macro
metze
Signed-off-By: Andrew Tridgell <tridge@samba.org>
-rw-r--r-- | lib/talloc/talloc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c index 8caa6837bb..34a23a3cab 100644 --- a/lib/talloc/talloc.c +++ b/lib/talloc/talloc.c @@ -337,6 +337,9 @@ _PUBLIC_ const char *talloc_parent_name(const void *ptr) PTR_DIFF(TC_HDR_SIZE + (_pool_tc)->size + (char *)(_pool_tc), \ (_pool_tc)->pool) +#define TC_POOL_FIRST_CHUNK(_pool_tc) \ + ((void *)(TC_HDR_SIZE + TALLOC_POOL_HDR_SIZE + (char *)(_pool_tc))) + static unsigned int *talloc_pool_objectcount(struct talloc_chunk *tc) { return (unsigned int *)((char *)tc + TC_HDR_SIZE); @@ -465,7 +468,7 @@ _PUBLIC_ void *talloc_pool(const void *context, size_t size) tc = talloc_chunk_from_ptr(result); tc->flags |= TALLOC_FLAG_POOL; - tc->pool = (char *)result + TALLOC_POOL_HDR_SIZE; + tc->pool = TC_POOL_FIRST_CHUNK(tc); *talloc_pool_objectcount(tc) = 1; @@ -1115,7 +1118,7 @@ _PUBLIC_ void talloc_free_children(void *ptr) if ((tc->flags & TALLOC_FLAG_POOL) && (*talloc_pool_objectcount(tc) == 1)) { - tc->pool = ((char *)tc + TC_HDR_SIZE + TALLOC_POOL_HDR_SIZE); + tc->pool = TC_POOL_FIRST_CHUNK(tc); #if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS) VALGRIND_MAKE_MEM_NOACCESS( tc->pool, tc->size - TALLOC_POOL_HDR_SIZE); |