diff options
-rw-r--r-- | source4/lib/talloc/Makefile.talloc | 6 | ||||
-rw-r--r-- | source4/lib/talloc/talloc.h | 5 | ||||
-rw-r--r-- | source4/lib/talloc/testsuite.c | 17 |
3 files changed, 19 insertions, 9 deletions
diff --git a/source4/lib/talloc/Makefile.talloc b/source4/lib/talloc/Makefile.talloc index 88cb0e7159..a19b4ce311 100644 --- a/source4/lib/talloc/Makefile.talloc +++ b/source4/lib/talloc/Makefile.talloc @@ -1,6 +1,6 @@ -OPT = -g -ftest-coverage -fprofile-arcs -LIBS = -lgcov -#OPT = -g +#OPT = -g -ftest-coverage -fprofile-arcs +#LIBS = -lgcov +OPT = -O CFLAGS = $(OPT) -Wall diff --git a/source4/lib/talloc/talloc.h b/source4/lib/talloc/talloc.h index 3483bb9e71..607ca4ca47 100644 --- a/source4/lib/talloc/talloc.h +++ b/source4/lib/talloc/talloc.h @@ -4,7 +4,7 @@ Unix SMB/CIFS implementation. Samba temporary memory allocation functions - Copyright (C) Andrew Tridgell 2004 + Copyright (C) Andrew Tridgell 2004-2005 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -54,8 +54,6 @@ typedef void TALLOC_CTX; #define talloc_memdup(t, p, size) _talloc_memdup(t, p, size, __location__) -#define talloc_destroy(ctx) talloc_free(ctx) - #define malloc_p(type) (type *)malloc(sizeof(type)) #define malloc_array_p(type, count) (type *)realloc_array(NULL, sizeof(type), count) #define realloc_p(p, type, count) (type *)realloc_array(p, sizeof(type), count) @@ -70,6 +68,7 @@ typedef void TALLOC_CTX; #define talloc_p(ctx, type) talloc(ctx, type) #define talloc_array_p(ctx, type, count) talloc_array(ctx, type, count) #define talloc_realloc_p(ctx, p, type, count) talloc_realloc(ctx, p, type, count) +#define talloc_destroy(ctx) talloc_free(ctx) #endif #ifndef PRINTF_ATTRIBUTE diff --git a/source4/lib/talloc/testsuite.c b/source4/lib/talloc/testsuite.c index d93894b520..bc1c18fdc1 100644 --- a/source4/lib/talloc/testsuite.c +++ b/source4/lib/talloc/testsuite.c @@ -575,7 +575,7 @@ static BOOL test_realloc_child(void) int count; struct el2 { const char *name; - } **list; + } **list, **list2, **list3; } *el1; struct el2 *el2; @@ -587,11 +587,22 @@ static BOOL test_realloc_child(void) el1->list = talloc(el1, struct el2 *); el1->list[0] = talloc(el1->list, struct el2); el1->list[0]->name = talloc_strdup(el1->list[0], "testing"); + + el1->list2 = talloc(el1, struct el2 *); + el1->list2[0] = talloc(el1->list2, struct el2); + el1->list2[0]->name = talloc_strdup(el1->list2[0], "testing2"); + + el1->list3 = talloc(el1, struct el2 *); + el1->list3[0] = talloc(el1->list3, struct el2); + el1->list3[0]->name = talloc_strdup(el1->list3[0], "testing2"); el2 = talloc(el1->list, struct el2); + el2 = talloc(el1->list2, struct el2); + el2 = talloc(el1->list3, struct el2); - el1->list = talloc_realloc(el1, el1->list, struct el2 *, 2); - el1->list[1] = el2; + el1->list = talloc_realloc(el1, el1->list, struct el2 *, 100); + el1->list2 = talloc_realloc(el1, el1->list2, struct el2 *, 200); + el1->list3 = talloc_realloc(el1, el1->list3, struct el2 *, 300); talloc_free(root); |