22 #include <drizzled/memory/multi_malloc.h>
43 void* multi_malloc(
bool zerofill, ...)
48 size_t tot_length,length;
50 va_start(args, zerofill);
52 while ((ptr=va_arg(args,
void **)))
58 length=va_arg(args,
unsigned int);
59 tot_length+=ALIGN_SIZE(length);
64 if (!(start= calloc(0, tot_length)))
67 start= malloc(tot_length);
69 memset(start, 0, tot_length);
72 va_start(args, zerofill);
73 res=
static_cast<char *
>(start);
74 while ((ptr=va_arg(args,
void **)))
77 length=va_arg(args,
unsigned int);
78 res+= ALIGN_SIZE(length);