/** ** allocate.h ---- common ground for malloc & friends in 16 & 32 bit envs ** stack based temporary memory allocation ** ** Copyright (c) 1995 Csaba Biegl, 820 Stirrup Dr, Nashville, TN 37221 ** [e-mail: csaba@vuse.vanderbilt.edu] ** ** This file is part of the GRX graphics library. ** ** The GRX graphics library is free software; you can redistribute it ** and/or modify it under some conditions; see the "copying.grx" file ** for details. ** ** This library 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. ** **/ #if defined(__MINGW32__) && !defined(alloca) # define alloca __builtin_alloca #else # include #endif #define farmalloc malloc #define farrealloc realloc #define farcalloc calloc #define farfree free #ifndef setup_alloca #define setup_alloca() #define reset_alloca() #endif /* ALLOC / FREE : use alloca if possible */ #define ALLOC(sze) alloca(sze) #define FREE(p) #define setup_ALLOC setup_alloca #define reset_ALLOC reset_alloca /* temp buffer for blits etc. */ extern void *_GrTempBuffer; extern unsigned _GrTempBufferBytes; #define _GrTempBufferAlloc(b) ( \ ((unsigned)(b) <= _GrTempBufferBytes) ? _GrTempBuffer \ : _GrTempBufferAlloc_(b) ) extern void *_GrTempBufferAlloc_(size_t bytes); extern void _GrTempBufferFree(void);