/* 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 */