diff options
author | Stefan Metzmacher <metze@samba.org> | 2006-12-15 22:45:36 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:29:21 -0500 |
commit | bfbf6d546bcea8ea3051a4ff93ed69f1dbf45ffe (patch) | |
tree | 788ba7c0e0c1e96314915b59d5bc9c14a1aea079 | |
parent | f0eaae956f37a0b25baf8fbfb8019b5b6c9e23a1 (diff) | |
download | samba-bfbf6d546bcea8ea3051a4ff93ed69f1dbf45ffe.tar.gz samba-bfbf6d546bcea8ea3051a4ff93ed69f1dbf45ffe.tar.bz2 samba-bfbf6d546bcea8ea3051a4ff93ed69f1dbf45ffe.zip |
r20193: - let talloc_parent_chunk() handle a NULL pointer
- use talloc_parent_chunk() in talloc_parent_name()
- add prototype of talloc_parent_name()
metze
(This used to be commit 85fc18f047cd2132d0c455f739ee76ce5005d7ed)
-rw-r--r-- | source4/lib/talloc/talloc.c | 26 | ||||
-rw-r--r-- | source4/lib/talloc/talloc.h | 1 |
2 files changed, 12 insertions, 15 deletions
diff --git a/source4/lib/talloc/talloc.c b/source4/lib/talloc/talloc.c index bae1942f43..dafb6d9075 100644 --- a/source4/lib/talloc/talloc.c +++ b/source4/lib/talloc/talloc.c @@ -164,8 +164,15 @@ do { \ */ static struct talloc_chunk *talloc_parent_chunk(const void *ptr) { - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); + struct talloc_chunk *tc; + + if (unlikely(ptr == NULL)) { + return NULL; + } + + tc = talloc_chunk_from_ptr(ptr); while (tc->prev) tc=tc->prev; + return tc->parent; } @@ -178,23 +185,12 @@ void *talloc_parent(const void *ptr) /* find parents name */ -const char *talloc_parent_name(const void *context) +const char *talloc_parent_name(const void *ptr) { - struct talloc_chunk *tc; - - if (unlikely(context == NULL)) { - return NULL; - } - - tc = talloc_chunk_from_ptr(context); - while (tc && tc->prev) tc = tc->prev; - if (tc) { - tc = tc->parent; - } - return tc->name; + struct talloc_chunk *tc = talloc_parent_chunk(ptr); + return tc? tc->name : NULL; } - /* Allocate a bit of memory as a child of an existing pointer */ diff --git a/source4/lib/talloc/talloc.h b/source4/lib/talloc/talloc.h index 8b17eec03a..75c130a275 100644 --- a/source4/lib/talloc/talloc.h +++ b/source4/lib/talloc/talloc.h @@ -123,6 +123,7 @@ void *talloc_named_const(const void *context, size_t size, const char *name); const char *talloc_get_name(const void *ptr); void *talloc_check_name(const void *ptr, const char *name); void *talloc_parent(const void *ptr); +const char *talloc_parent_name(const void *ptr); void *talloc_init(const char *fmt, ...) PRINTF_ATTRIBUTE(1,2); int talloc_free(void *ptr); void talloc_free_children(void *ptr); |