author | viric@mandarina |
Sat, 11 Aug 2007 16:01:25 +0200 | |
changeset 3 | ba1b3c2fcff2 |
parent 2 | 57a1fcb0c75c |
child 5 | c87681fff7d3 |
permissions | -rw-r--r-- |
#include <stdio.h> #include <stdlib.h> #include "dictre.h" static int given = 0; static int sysallocated = 0; static void *base = 0; enum { STEP = 5*1024*1024 }; void * fastmalloc(int newsize) { void *outptr; outptr = base + given; given += newsize; if (given > sysallocated) { if (STEP > newsize) { base = realloc(base, STEP); sysallocated += STEP; } else { base = realloc(base, newsize); sysallocated += newsize; } } return outptr; }