1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

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 commit is contained in:
Stefan Metzmacher 2006-12-15 22:45:36 +00:00 committed by Gerald (Jerry) Carter
parent 5ac373c8b8
commit 85fc18f047
2 changed files with 12 additions and 15 deletions

View File

@ -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;
struct talloc_chunk *tc = talloc_parent_chunk(ptr);
return tc? tc->name : NULL;
}
tc = talloc_chunk_from_ptr(context);
while (tc && tc->prev) tc = tc->prev;
if (tc) {
tc = tc->parent;
}
return tc->name;
}
/*
Allocate a bit of memory as a child of an existing pointer
*/

View File

@ -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);