diff options
Diffstat (limited to 'mem.h')
-rw-r--r-- | mem.h | 79 |
1 files changed, 79 insertions, 0 deletions
@@ -0,0 +1,79 @@ +/* + + viDOOM - level editor for DOOM + + Copyright (C) 2000 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + + Memory allocation + + $Id$ + +*/ + +#ifndef _MEM_H + +#define _MEM_H + +/* Notes: All these functions take debug information. The versions actually + used in the code are the #define's following the prototypes +*/ + + +/* Grab len bytes of memory. len==0 is valid. Memory is zereod on allocation. +*/ +void *FGrab(char *file, int line, int len); + + +/* Given a pointer returned by Grab() and a new size reallocates it to a + larger or smaller block. The orignal contents are copied to the new + block. Passing an NULL for ptr makes this call the same as FGrab(len). +*/ +void *FReGrab(char *file, int line, void *ptr, int len); + + +/* Reserve len bytes and copy len bytes from p to the new memory. len==0 is + valid +*/ +void *FCopy(char *file, int line, void *p,int len); + + +/* Reserve space for the nul terminated string and copy the source there. + Return is NULL if source is NULL +*/ +char *FStrdup(char *file, int line, char *s); + + +/* Release allocated memory +*/ +void FRelease(char *file, int line, void *p); + + + +/* Actually use these +*/ +#define Grab(n) FGrab(__FILE__,__LINE__,(n)) +#define ReGrab(p,n) FReGrab(__FILE__,__LINE__,(p),(n)) +#define Copy(p,n) FCopy(__FILE__,__LINE__,(p),(n)) +#define Strdup(p) FStrdup(__FILE__,__LINE__,(p)) +#define Release(p) FRelease(__FILE__,__LINE__,(p)) + +#endif + + +/* END OF FILE */ |