]>
Dogcows Code - chaz/rasterize/blob - common.c
3 * CS5600 University of Utah
5 * mcgarvey@eng.utah.edu
17 static void* (*_mem_fn
)(void*, size_t) = NULL
;
19 static int _mem_blocks
= 0;
23 * Check the result of the allocation function and call the callback function
27 void* _mem_check(void* mem
, void* old
, size_t size
)
29 if (mem
== NULL
&& size
!= 0) {
31 mem
= _mem_fn(old
, size
);
36 fprintf(stderr
, "Memory allocation failed: %s\n", strerror(errno
));
48 void* mem_alloc(size_t size
)
50 void* mem
= _mem_check(malloc(size
), NULL
, size
);
52 fprintf(stderr
, " ALLOC %6d %18p %10zd\n", _mem_blocks
- 1, mem
, size
);
57 void* mem_realloc(void* mem
, size_t size
)
60 mem
= _mem_check(realloc(mem
, size
), mem
, size
);
62 fprintf(stderr
, " REALLOC %6d %18p %10zd (was %p)\n", _mem_blocks
- 1, mem
, size
, old
);
67 void mem_free(void* mem
)
71 fprintf(stderr
, " FREE %6d %18p\n", _mem_blocks
, mem
);
76 void mem_set_fn(void* (*fn
)(void*, size_t))
90 for (m
= str
+ strlen(str
) - 1; str
<= m
&& isspace((int)*m
); --m
);
97 for (m
= str
; *m
&& isspace((int)*m
); ++m
);
98 memmove(str
, m
, strlen(m
) + 1);
This page took 0.035074 seconds and 4 git commands to generate.