X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=zone.h;h=3dec0b62b961e3d4e4da026721d753588554ccfe;hp=5112acf0ab4b6260f804786c614c3cbbdd22c32c;hb=b99206803156d4bdfe4ce0c83a2db8f9486e09d4;hpb=a44a8e4cff906212f7ec4aa15a2addbeaa8dfe7a diff --git a/zone.h b/zone.h index 5112acf0..3dec0b62 100644 --- a/zone.h +++ b/zone.h @@ -21,7 +21,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef ZONE_H #define ZONE_H -extern qboolean mem_bigendian; +#include +#include "qtypes.h" +#include "qdefs.h" +#include "com_list.h" + +extern qbool mem_bigendian; // div0: heap overflow detection paranoia #define MEMPARANOIA 0 @@ -35,8 +40,7 @@ typedef struct memheader_s // address returned by Chunk_Alloc (may be significantly before this header to satisify alignment) void *baseaddress; // next and previous memheaders in chain belonging to pool - struct memheader_s *next; - struct memheader_s *prev; + struct llist_s list; // pool this memheader belongs to struct mempool_s *pool; // size of the memory after the header (excluding header and sentinel2) @@ -55,7 +59,7 @@ typedef struct mempool_s // should always be MEMPOOL_SENTINEL unsigned int sentinel1; // chain of individual memory allocations - struct memheader_s *chain; + struct llist_s chain; // POOLFLAG_* int flags; // total memory allocated in this pool (inside memheaders) @@ -82,6 +86,7 @@ mempool_t; #define Mem_Memalign(pool,alignment,size) _Mem_Alloc(pool, NULL, size, alignment, __FILE__, __LINE__) #define Mem_Realloc(pool,data,size) _Mem_Alloc(pool, data, size, 16, __FILE__, __LINE__) #define Mem_Free(mem) _Mem_Free(mem, __FILE__, __LINE__) +#define Mem_strdup(pool, s) _Mem_strdup(pool, s, __FILE__, __LINE__) #define Mem_CheckSentinels(data) _Mem_CheckSentinels(data, __FILE__, __LINE__) #if MEMPARANOIA #define Mem_CheckSentinelsGlobal() _Mem_CheckSentinelsGlobal(__FILE__, __LINE__) @@ -100,9 +105,9 @@ void _Mem_EmptyPool(mempool_t *pool, const char *filename, int fileline); void _Mem_CheckSentinels(void *data, const char *filename, int fileline); void _Mem_CheckSentinelsGlobal(const char *filename, int fileline); // if pool is NULL this searches ALL pools for the allocation -qboolean Mem_IsAllocated(mempool_t *pool, void *data); +qbool Mem_IsAllocated(mempool_t *pool, void *data); -char* Mem_strdup (mempool_t *pool, const char* s); +char* _Mem_strdup (mempool_t *pool, const char* s, const char *filename, int fileline); typedef struct memexpandablearray_array_s { @@ -138,7 +143,9 @@ void Memory_Shutdown (void); void Memory_Init_Commands (void); extern mempool_t *zonemempool; -#define Z_Malloc(size) Mem_Alloc(zonemempool,size) +#define Z_Malloc(size) Mem_Alloc(zonemempool, size) +#define Z_Realloc(data, size) Mem_Realloc(zonemempool, data, size) +#define Z_strdup(s) Mem_strdup(zonemempool, s) #define Z_Free(data) Mem_Free(data) extern struct cvar_s developer_memory;