#ifndef __LIBMM_MMM_H #define __LIBMM_MMM_H #define _GNU_SOURCE #include #include #include #include #include #include "mmm_config.h" //---------------------------------------------------------------------- #ifdef MMM_PLAIN #define MALLOC(SIZE) malloc(SIZE); #define FREE(PTR) free(PTR); #define CALLOC(NMEMB,SIZE) calloc(NMEMB, SIZE); #define REALLOC(PTR,SIZE) realloc(PTR,SIZE); #define IF_NULL(PTR,SUCCESS_CODE,FAILED_CODE) if ((PTR)==NULL){FAILED_CODE} else {SUCCESS_CODE}; #endif //---------------------------------------------------------------------- #ifdef MMM_PLAIN_SAFE #define MALLOC(SIZE) malloc(SIZE); #define FREE(PTR) if (PTR!=NULL){free(PTR);PTR=NULL;}; #define CALLOC(NMEMB,SIZE) calloc(NMEMB, SIZE); #define REALLOC(PTR,SIZE) realloc(PTR,SIZE); #define IF_NULL(PTR,SUCCESS_CODE,FAILED_CODE) if ((PTR)==NULL){FAILED_CODE} else {SUCCESS_CODE}; #endif //---------------------------------------------------------------------- #ifdef MMM_RECORD #define MALLOC(SIZE) mmm_malloc(SIZE,__FILE__,__LINE__); #define FREE(PTR) mmm_free((PTR),__FILE__,__LINE__); #define CALLOC(NMEMB,SIZE) calloc(NMEMB,SIZE); #define REALLOC(PTR,SIZE) realloc(PTR,SIZE); #define IF_NULL(PTR,SUCCESS_CODE,FAILED_CODE) if ((PTR)==NULL){FAILED_CODE} else {SUCCESS_CODE}; void* mmm_malloc(size_t, const char *, int ); void mmm_free( void *, const char *, int ); #endif #endif