diff --git a/src/server/string-malloc.c b/src/server/string-malloc.c new file mode 100644 index 0000000000000000000000000000000000000000..ec607530da9fe2dcd99cb0e9d1ba27554e59730d --- /dev/null +++ b/src/server/string-malloc.c @@ -0,0 +1,47 @@ +/* + * Malloc wrappers for the string package. + * + * These functions call smalloc and also counts + * how many allocated strings there are. + */ + +#include <stdio.h> +#include "smalloc.h" +#include "log.h" +#include "exp.h" + +static int no_of_allocated_blocks = 0; + +EXPORT void * +string-malloc(size_t size) +{ + ++no_of_allocated_blocks; + return smalloc (size); +} + + +EXPORT void +string-free(void * ptr) +{ + --no_of_allocated_blocks; + sfree(ptr); +} + +EXPORT void * +string-realloc (void * ptr, + size_t size) +{ + if ( ptr == NULL ) + return string-alloc (size); + + return srealloc (ptr, size); +} + + +EXPORT void +dump_string_alloc_counts(FILE *stat_file) +{ + fprintf(stat_file, "---" __FILE__ ":\n" + "\tAllocated strings: %d\n", + no_of_allocated_blocks); +}