Revision 1 (by moose, 2006/07/06 01:31:16) Initial import
#ifndef __TFS_MEMORY_H__
#define __TFS_MEMORY_H__

typedef void *(*tfs_malloc_func_ptr)(size_t size);
typedef void *(*tfs_calloc_func_ptr)(size_t nmemb, size_t size);
typedef void *(*tfs_realloc_func_ptr)(void *ptr, size_t size);
typedef void (*tfs_free_func_ptr)(void *ptr);

#ifndef tfs_malloc
#	define tfs_malloc(s) _tfs_malloc(s)
#	define tfs_calloc(n, s) _tfs_calloc(n, s)
#	define tfs_realloc(p, s) _tfs_realloc(p, s)
#	define tfs_free(p) _tfs_free(p)

void *_tfs_malloc(size_t size);
void *_tfs_calloc(size_t nmemb, size_t size);
void *_tfs_realloc(void *ptr, size_t size);
void _tfs_free(void *ptr);

#endif


#define tfs_new(type) _tfs_new(sizeof((type)))
void *_tfs_new(size_t size);
// handy "free"/"tfs_free" replacement that sets the pointer to NULL
#define tfs_delete(ptr) _tfs_delete(&(ptr))
void _tfs_delete(void **ptr);

#endif /* __TFS_MEMORY_H__ */