home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: SysTools
/
SysTools.zip
/
ft-beta.zip
/
freetype
/
lib
/
ttmemory.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-10-06
|
3KB
|
84 lines
/*******************************************************************
*
* ttmemory.h 1.2
*
* Memory management component (specification).
*
* Copyright 1996, 1997 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used
* modified and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
* Changes between 1.2 and 1.1 :
*
* - the font pool is gone! All allocations are now performed
* with malloc and free.
*
* - introduced the FREE macro and the Free function for
* future use in destructors.
*
* - Init_FontPool is now a macro to allow the compilation of
* 'legacy' applications (all four test programs have been updated).
*
******************************************************************/
#ifndef TTMEMORY_H
#define TTMEMORY_H
#include "tttypes.h"
#include "string.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MEM_Set( dest, byte, count ) memset(dest,byte,count)
#ifdef HAVE_MEMCPY
#define MEM_Copy( dest, source, count ) memcpy(dest,source,count)
#else
#define MEM_Copy( dest, source, count ) bcopy(source,dest,count )
#endif
#define MEM_Alloc( _pointer_, _size_ ) TT_Alloc(_size_,(void**)&(_pointer_))
#define ALLOC( _pointer_, _size_ ) \
( error = MEM_Alloc( _pointer_, _size_ ) )
#define ALLOC_ARRAY( _pointer_, _count_, _type_ ) \
( error = MEM_Alloc( _pointer_, (_count_)*sizeof(_type_) ) )
#define FREE( _pointer_ ) TT_Free((void**)&(_pointer_))
TT_Error TT_Alloc( long Size, void** P );
/* Allocate a block of memory of 'Size' bytes from the heap, and */
/* sets the pointer '*P' to its address. If 'Size' is 0, or in */
/* case of error, the pointer is always set to NULL */
TT_Error TT_Free( void** P );
/* Releases a block that was previously allocated through Alloc */
/* Note that the function returns successfully when P or *P are */
/* already NULL. The pointer '*P' is set to NULL on exit in case */
/* of success.. */
/* for "legacy" applications, that should be re-coded */
#define Init_FontPool( x, y ) while(0){}
/* note that this won't release the previously allocated font pool */
TT_Error TTMemory_Init();
TT_Error TTMemory_Done();
#ifdef __cplusplus
}
#endif
#endif /* TTMEMORY_H */
/* End */