From 3583c70725fa33b9cbd70aa30440cfebc35b464b Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 16 Oct 2001 22:36:34 +0000 Subject: [PATCH] revert to mamloc/free if EPICS_DEBUG is defined --- src/libCom/freeList/freeListLib.c | 108 +++++++++++++++++------------- 1 file changed, 60 insertions(+), 48 deletions(-) diff --git a/src/libCom/freeList/freeListLib.c b/src/libCom/freeList/freeListLib.c index e041d9120..da36cb58a 100644 --- a/src/libCom/freeList/freeListLib.c +++ b/src/libCom/freeList/freeListLib.c @@ -95,66 +95,78 @@ epicsShareFunc void epicsShareAPI epicsShareFunc void * epicsShareAPI freeListCalloc(void *pvt) { FREELISTPVT *pfl = pvt; - void *ptemp; +# ifdef EPICS_DEBUG + return callocMustSucceed(1,pfl->size,"freeList Debug Calloc"); +# else + void *ptemp; - ptemp = freeListMalloc(pvt); - if(ptemp) memset((char *)ptemp,0,pfl->size); - return(ptemp); + ptemp = freeListMalloc(pvt); + if(ptemp) memset((char *)ptemp,0,pfl->size); + return(ptemp); +# endif } epicsShareFunc void * epicsShareAPI freeListMalloc(void *pvt) { FREELISTPVT *pfl = pvt; - void *ptemp; - void **ppnext; - allocMem *pallocmem; - int i; +# ifdef EPICS_DEBUG + return callocMustSucceed(1,pfl->size,"freeList Debug Malloc"); +# else + void *ptemp; + void **ppnext; + allocMem *pallocmem; + int i; - epicsMutexMustLock(pfl->lock); - ptemp = pfl->head; - if(ptemp==0) { - ptemp = (void *)malloc(pfl->nmalloc*pfl->size); - if(ptemp==0) { - epicsMutexUnlock(pfl->lock); - return(0); - } - pallocmem = (allocMem *)calloc(1,sizeof(allocMem)); - if(pallocmem==0) { - epicsMutexUnlock(pfl->lock); - free(ptemp); - return(0); - } - pallocmem->memory = ptemp; - if(pfl->mallochead) - pallocmem->next = pfl->mallochead; - pfl->mallochead = pallocmem; - for(i=0; inmalloc; i++) { - ppnext = ptemp; - *ppnext = pfl->head; - pfl->head = ptemp; - ptemp = ((char *)ptemp) + pfl->size; - } - ptemp = pfl->head; - pfl->nBlocksAvailable += pfl->nmalloc; - } - ppnext = pfl->head; - pfl->head = *ppnext; - pfl->nBlocksAvailable--; - epicsMutexUnlock(pfl->lock); - return(ptemp); + epicsMutexMustLock(pfl->lock); + ptemp = pfl->head; + if(ptemp==0) { + ptemp = (void *)malloc(pfl->nmalloc*pfl->size); + if(ptemp==0) { + epicsMutexUnlock(pfl->lock); + return(0); + } + pallocmem = (allocMem *)calloc(1,sizeof(allocMem)); + if(pallocmem==0) { + epicsMutexUnlock(pfl->lock); + free(ptemp); + return(0); + } + pallocmem->memory = ptemp; + if(pfl->mallochead) + pallocmem->next = pfl->mallochead; + pfl->mallochead = pallocmem; + for(i=0; inmalloc; i++) { + ppnext = ptemp; + *ppnext = pfl->head; + pfl->head = ptemp; + ptemp = ((char *)ptemp) + pfl->size; + } + ptemp = pfl->head; + pfl->nBlocksAvailable += pfl->nmalloc; + } + ppnext = pfl->head; + pfl->head = *ppnext; + pfl->nBlocksAvailable--; + epicsMutexUnlock(pfl->lock); + return(ptemp); +# endif } epicsShareFunc void epicsShareAPI freeListFree(void *pvt,void*pmem) { - FREELISTPVT *pfl = pvt; - void **ppnext; +# ifdef EPICS_DEBUG + free(pmem); +# else + FREELISTPVT *pfl = pvt; + void **ppnext; - epicsMutexMustLock(pfl->lock); - ppnext = pmem; - *ppnext = pfl->head; - pfl->head = pmem; - pfl->nBlocksAvailable++; - epicsMutexUnlock(pfl->lock); + epicsMutexMustLock(pfl->lock); + ppnext = pmem; + *ppnext = pfl->head; + pfl->head = pmem; + pfl->nBlocksAvailable++; + epicsMutexUnlock(pfl->lock); +# endif } epicsShareFunc void epicsShareAPI freeListCleanup(void *pvt)