Eneboo - Documentación para desarrolladores
src/qt/src/3rdparty/libmng/libmng_memory.h
Ir a la documentación de este archivo.
00001 /* ************************************************************************** */
00002 /* *             For conditions of distribution and use,                    * */
00003 /* *                see copyright notice in libmng.h                        * */
00004 /* ************************************************************************** */
00005 /* *                                                                        * */
00006 /* * project   : libmng                                                     * */
00007 /* * file      : libmng_memory.h           copyright (c) 2000 G.Juyn        * */
00008 /* * version   : 1.0.0                                                      * */
00009 /* *                                                                        * */
00010 /* * purpose   : Memory management (definition)                             * */
00011 /* *                                                                        * */
00012 /* * author    : G.Juyn                                                     * */
00013 /* * web       : http://www.3-t.com                                         * */
00014 /* * email     : mailto:info@3-t.com                                        * */
00015 /* *                                                                        * */
00016 /* * comment   : Definition of memory management functions                  * */
00017 /* *                                                                        * */
00018 /* * changes   : 0.5.1 - 05/08/2000 - G.Juyn                                * */
00019 /* *             - changed strict-ANSI stuff                                * */
00020 /* *                                                                        * */
00021 /* *             0.5.3 - 06/12/2000 - G.Juyn                                * */
00022 /* *             - swapped MNG_COPY parameter-names                         * */
00023 /* *             0.5.3 - 06/27/2000 - G.Juyn                                * */
00024 /* *             - changed size parameter to mng_size_t                     * */
00025 /* *                                                                        * */
00026 /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
00027 /* *             - changed file-prefixes                                    * */
00028 /* *                                                                        * */
00029 /* ************************************************************************** */
00030 
00031 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
00032 #pragma option -A                      /* force ANSI-C */
00033 #endif
00034 
00035 #ifndef _libmng_memory_h_
00036 #define _libmng_memory_h_
00037 
00038 /* ************************************************************************** */
00039 /* *                                                                        * */
00040 /* * Generic memory manager macros                                          * */
00041 /* *                                                                        * */
00042 /* ************************************************************************** */
00043 
00044 #ifdef MNG_INTERNAL_MEMMNGMT
00045 #define MNG_ALLOC(H,P,L)  { P = calloc (1, (mng_size_t)(L)); \
00046                             if (P == 0) { MNG_ERROR (H, MNG_OUTOFMEMORY) } }
00047 #define MNG_ALLOCX(H,P,L) { P = calloc (1, (mng_size_t)(L)); }
00048 #define MNG_FREE(H,P,L)   { if (P) { free (P); P = 0; } }
00049 #define MNG_FREEX(H,P,L)  { if (P) free (P); }
00050 #else
00051 #define MNG_ALLOC(H,P,L)  { P = H->fMemalloc ((mng_size_t)(L)); \
00052                             if (P == 0) { MNG_ERROR (H, MNG_OUTOFMEMORY) } }
00053 #define MNG_ALLOCX(H,P,L) { P = H->fMemalloc ((mng_size_t)(L)); }
00054 #define MNG_FREE(H,P,L)   { if (P) { H->fMemfree (P, (mng_size_t)(L)); P = 0; } }
00055 #define MNG_FREEX(H,P,L)  { if (P) { H->fMemfree (P, (mng_size_t)(L)); } }
00056 #endif /* mng_internal_memmngmt */
00057 
00058 #define MNG_COPY(D,S,L)   { memcpy (D, S, (mng_size_t)(L)); }
00059 
00060 /* ************************************************************************** */
00061 
00062 #endif /* _libmng_memory_h_ */
00063 
00064 /* ************************************************************************** */
00065 /* * end of file                                                            * */
00066 /* ************************************************************************** */
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'