summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/talloc/Makefile.talloc6
-rw-r--r--source4/lib/talloc/talloc.h5
-rw-r--r--source4/lib/talloc/testsuite.c17
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);