79 lines
2.5 KiB
C
79 lines
2.5 KiB
C
/*=========================================================================
|
|
*
|
|
* MacroMlt.h - Macros for memory
|
|
*
|
|
* Version 1.0
|
|
* Revision date
|
|
*
|
|
*=======================================================================*/
|
|
#ifndef __MEMMlt_H__
|
|
#define __MEMMlt_H__
|
|
|
|
#define M_MltInitMem() Mem_M_SetModeAlloc(Mlt, E_ucDynamic)
|
|
|
|
#define M_MltAlloc(Var, cast, ulSize)\
|
|
{\
|
|
M_MltInitMem();\
|
|
Var = (cast) Mem_fn_p_vAlloc(ulSize);\
|
|
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
|
|
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
|
|
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
|
|
}\
|
|
|
|
}
|
|
|
|
#define M_MltAllocWithoutInitMem(Var, cast, ulSize)\
|
|
{\
|
|
Var = (cast) Mem_fn_p_vAlloc(ulSize);\
|
|
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
|
|
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
|
|
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
|
|
}\
|
|
}
|
|
|
|
#define M_MltRealloc(Var, AdrSrc, cast, ulSize)\
|
|
{\
|
|
M_MltInitMem();\
|
|
Var = (cast) Mem_fn_p_vRealloc(AdrSrc, ulSize);\
|
|
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
|
|
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
|
|
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
|
|
}\
|
|
|
|
}
|
|
|
|
#define M_MltReallocWithoutInitMem(Var, AdrSrc, cast, ulSize)\
|
|
{\
|
|
Var = (cast) Mem_fn_p_vRealloc(AdrSrc, ulSize);\
|
|
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
|
|
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
|
|
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
|
|
}\
|
|
}
|
|
|
|
|
|
#define M_MltFree(p_cAdr) \
|
|
{\
|
|
M_MltInitMem();\
|
|
Mem_fn_vFree(p_cAdr);\
|
|
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
|
|
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
|
|
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltWarningCanNotFree, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
|
|
}\
|
|
}
|
|
|
|
#define M_MltFreeWithoutInitMem(p_cAdr) \
|
|
{\
|
|
Mem_fn_vFree(p_cAdr);\
|
|
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
|
|
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
|
|
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltWarningCanNotFree, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
|
|
}\
|
|
}
|
|
|
|
#endif // __MEMMlt_H__
|
|
|
|
|
|
|
|
|