#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <string.h>
#include "main.h"
void * mymalloc(int size, char *what)
{
void *dummy = malloc(size);
if (!dummy)
{
fprintf(stderr, "failed to allocate %d bytes for %s\n", size, what);
exit(1);
}
return dummy;
}
void * myrealloc(void *oldp, int newsize, char *what)
{
void *dummy = realloc(oldp, newsize);
if (!dummy)
{
fprintf(stderr, "failed to reallocate to %d bytes for %s\n", newsize, what);
exit(1);
}
return dummy;
}
char * mystrdup(char *in)
{
char *dummy = strdup(in);
if (!dummy)
{
fprintf(stderr, "failed to copy string '%s': out of memory?\n", in);
exit(1);
}
return dummy;
}
int resize(void **pnt, int n, int *len, int size)
{
if (unlikely(n == *len))
{
int dummylen = (*len) == 0 ? 2 : (*len) * 2;
void *dummypnt = (void *)myrealloc(*pnt, dummylen * size, "resize()");
if (!dummypnt)
{
fprintf(stderr, "resize::realloct: Cannot (re-)allocate %d bytes of memory\n", dummylen * size);
return -1;
}
*len = dummylen;
*pnt = dummypnt;
}
else if (unlikely(n > *len || n<0 || *len<0))
{
fprintf(stderr, "resize: fatal memory corruption problem: n > len || n<0 || len<0!\n");
exit(1);
}
return 0;
}
void free_array(void ***array, int *n, int *len)
{
int loop;
for(loop=0; loop<*n; loop++)
{
free((*array)[loop]);
}
free(*array);
*array = NULL;
*n = *len = 0;
}
syntax highlighted by Code2HTML, v. 0.9.1