Changeset 639 for trunk/psLib/src/sysUtils/psMemory.c
- Timestamp:
- May 11, 2004, 10:11:17 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/sysUtils/psMemory.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/sysUtils/psMemory.c
r636 r639 8 8 * @author Robert Lupton, Princeton University 9 9 * 10 * @version $Revision: 1.1 6$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-05-11 01:57:54$10 * @version $Revision: 1.17 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-05-11 20:11:17 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 62 62 const char *file, int lineno) 63 63 { 64 checkMemBlock(ptr, __func__);65 66 64 if (ptr->refCounter <= 0) { 67 65 psError(__func__, … … 100 98 long p_psMemFreeID = 0; // notify user this block is freed 101 99 102 long psMem SetAllocateID(long id) // set p_psMemAllocateID to id100 long psMemAllocateCallbackSetID(long id) // set p_psMemAllocateID to id 103 101 { 104 102 long old = p_psMemAllocateID; … … 108 106 } 109 107 110 long psMem SetFreeID(long id) // set p_psMemFreeID to id108 long psMemFreeCallbackSetID(long id) // set p_psMemFreeID to id 111 109 { 112 110 long old = p_psMemFreeID; … … 155 153 } 156 154 157 psMemFreeCallback psMemFree SetCallback(psMemFreeCallback func)155 psMemFreeCallback psMemFreeCallbackSet(psMemFreeCallback func) 158 156 { 159 157 psMemFreeCallback old = memFreeCallback; … … 201 199 202 200 if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) { 203 psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (% x %x)",201 psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%p %p)", 204 202 m->id,m->startblock,m->endblock); 205 203 return(1); … … 310 308 pthread_mutex_unlock(&memBlockListMutex); 311 309 310 // Did the user ask to be informed about this allocation? 311 if (ptr->id == p_psMemAllocateID) { 312 p_psMemAllocateID += memAllocateCallback(ptr); 313 } 314 312 315 return ptr + 1; // usr memory 313 316 } … … 366 369 int nleak = 0; 367 370 int j = 0; 371 psMemBlock* topBlock = lastMemBlockAllocated; 368 372 369 373 pthread_mutex_lock(&memBlockListMutex); 370 374 371 for (psMemBlock* iter = lastMemBlockAllocated; iter != NULL; iter=iter->nextBlock)375 for (psMemBlock* iter = topBlock; iter != NULL; iter=iter->nextBlock) 372 376 { 373 377 if ( (iter->refCounter > 0) && (iter->id >= id0) ) { … … 391 395 } 392 396 393 p_psFree(*arr,__FILE__, __LINE__); // Don't generate a memory leak!394 395 397 *arr = p_psAlloc(nleak*sizeof(psMemBlock), __FILE__, __LINE__); 396 397 398 pthread_mutex_lock(&memBlockListMutex); 398 399 399 for (psMemBlock* iter = lastMemBlockAllocated; iter != NULL; iter=iter->nextBlock)400 for (psMemBlock* iter = topBlock; iter != NULL; iter=iter->nextBlock) 400 401 { 401 402 if ( (iter->refCounter > 0) && (iter->id >= id0) ) {
Note:
See TracChangeset
for help on using the changeset viewer.
