From cf12120f98aaab15406654e6acbaf3377a8d0c04 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 31 Mar 2011 16:56:18 +0200 Subject: [PATCH] talloc: add TC_POOL_FIRST_CHUNK() macro metze Signed-off-By: Andrew Tridgell (cherry picked from commit 73330f8436707b5ab46c0720ea735908948f5d27) --- lib/talloc/talloc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c index 8caa6837bbc2..34a23a3cab2f 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); -- 2.34.1