svn commit: samba r6849 - in branches/SAMBA_3_0/source/lib: .
vlendec at samba.org
vlendec at samba.org
Tue May 17 07:10:46 GMT 2005
Author: vlendec
Date: 2005-05-17 07:10:45 +0000 (Tue, 17 May 2005)
New Revision: 6849
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6849
Log:
Merge revision 6845 from Samba 4
Modified:
branches/SAMBA_3_0/source/lib/talloc.c
Changeset:
Modified: branches/SAMBA_3_0/source/lib/talloc.c
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc.c 2005-05-17 06:59:29 UTC (rev 6848)
+++ branches/SAMBA_3_0/source/lib/talloc.c 2005-05-17 07:10:45 UTC (rev 6849)
@@ -94,17 +94,20 @@
struct talloc_chunk *parent, *child;
struct talloc_reference_handle *refs;
size_t size;
- unsigned magic;
talloc_destructor_t destructor;
const char *name;
+ union {
+ unsigned magic;
+ double align_dummy;
+ } u;
};
/* panic if we get a bad magic value */
static struct talloc_chunk *talloc_chunk_from_ptr(const void *ptr)
{
struct talloc_chunk *tc = discard_const_p(struct talloc_chunk, ptr)-1;
- if (tc->magic != TALLOC_MAGIC) {
- if (tc->magic == TALLOC_MAGIC_FREE) {
+ if (tc->u.magic != TALLOC_MAGIC) {
+ if (tc->u.magic == TALLOC_MAGIC_FREE) {
TALLOC_ABORT("Bad talloc magic value - double free");
} else {
TALLOC_ABORT("Bad talloc magic value - unknown value");
@@ -177,7 +180,7 @@
if (tc == NULL) return NULL;
tc->size = size;
- tc->magic = TALLOC_MAGIC;
+ tc->u.magic = TALLOC_MAGIC;
tc->destructor = NULL;
tc->child = NULL;
tc->name = NULL;
@@ -556,7 +559,7 @@
if (tc->next) tc->next->prev = tc->prev;
}
- tc->magic = TALLOC_MAGIC_FREE;
+ tc->u.magic = TALLOC_MAGIC_FREE;
free(tc);
return 0;
@@ -596,7 +599,7 @@
}
/* by resetting magic we catch users of the old memory */
- tc->magic = TALLOC_MAGIC_FREE;
+ tc->u.magic = TALLOC_MAGIC_FREE;
#if ALWAYS_REALLOC
new_ptr = malloc(size + sizeof(*tc));
@@ -608,12 +611,12 @@
new_ptr = realloc(tc, size + sizeof(*tc));
#endif
if (!new_ptr) {
- tc->magic = TALLOC_MAGIC;
+ tc->u.magic = TALLOC_MAGIC;
return NULL;
}
tc = new_ptr;
- tc->magic = TALLOC_MAGIC;
+ tc->u.magic = TALLOC_MAGIC;
if (tc->parent) {
tc->parent->child = new_ptr;
}
More information about the samba-cvs
mailing list