Changeset 636
- Timestamp:
- May 10, 2004, 3:57:54 PM (22 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 2 edited
-
sys/psMemory.c (modified) (7 diffs)
-
sysUtils/psMemory.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/sys/psMemory.c
r473 r636 8 8 * @author Robert Lupton, Princeton University 9 9 * 10 * @version $Revision: 1.1 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-0 4-20 03:10:31$10 * @version $Revision: 1.16 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-05-11 01:57:54 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 19 19 #include <stdlib.h> 20 20 #include <stdio.h> 21 #include <stdbool.h> 22 21 23 #include "psMemory.h" 22 24 #include "psError.h" … … 44 46 static psMemExhaustedCallback memExhaustedCallback = memExhaustedCallbackDefault; 45 47 46 psMemExhaustedCallback psMemExhausted SetCallback(psMemExhaustedCallback func)48 psMemExhaustedCallback psMemExhaustedCallbackSet(psMemExhaustedCallback func) 47 49 { 48 50 psMemExhaustedCallback old = memExhaustedCallback; … … 78 80 static psMemProblemCallback memProblemCallback = memProblemCallbackDefault; 79 81 80 psMemProblemCallback psMemProblem SetCallback(psMemProblemCallback func)82 psMemProblemCallback psMemProblemCallbackSet(psMemProblemCallback func) 81 83 { 82 84 psMemProblemCallback old = memProblemCallback; … … 140 142 static psMemFreeCallback memFreeCallback = memFreeCallbackDefault; 141 143 142 psMemAllocateCallback psMemAllocate SetCallback(psMemAllocateCallback func)144 psMemAllocateCallback psMemAllocateCallbackSet(psMemAllocateCallback func) 143 145 { 144 146 psMemFreeCallback old = memAllocateCallback; … … 199 201 200 202 if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) { 201 psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted", m->id); 203 psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%x %x)", 204 m->id,m->startblock,m->endblock); 202 205 return(1); 203 206 } … … 280 283 } else { 281 284 psMemBlock *ptr = ((psMemBlock *)vptr) - 1; 285 bool isBlockLast = false; 282 286 283 287 pthread_mutex_lock(&memBlockListMutex); 284 288 289 isBlockLast = (ptr == lastMemBlockAllocated); 290 285 291 ptr = (psMemBlock*)realloc(ptr, sizeof(psMemBlock) + size); 292 293 if (ptr == NULL) { 294 psAbort(__func__, "Failed to reallocate %ld bytes at %s:%d", 295 size, file, lineno); 296 } 297 298 if (isBlockLast) { 299 lastMemBlockAllocated = ptr; 300 } 286 301 287 302 // the block location may have changed, so fix the linked list addresses. -
trunk/psLib/src/sysUtils/psMemory.c
r474 r636 8 8 * @author Robert Lupton, Princeton University 9 9 * 10 * @version $Revision: 1.1 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-0 4-20 03:10:31$10 * @version $Revision: 1.16 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-05-11 01:57:54 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 19 19 #include <stdlib.h> 20 20 #include <stdio.h> 21 #include <stdbool.h> 22 21 23 #include "psMemory.h" 22 24 #include "psError.h" … … 44 46 static psMemExhaustedCallback memExhaustedCallback = memExhaustedCallbackDefault; 45 47 46 psMemExhaustedCallback psMemExhausted SetCallback(psMemExhaustedCallback func)48 psMemExhaustedCallback psMemExhaustedCallbackSet(psMemExhaustedCallback func) 47 49 { 48 50 psMemExhaustedCallback old = memExhaustedCallback; … … 78 80 static psMemProblemCallback memProblemCallback = memProblemCallbackDefault; 79 81 80 psMemProblemCallback psMemProblem SetCallback(psMemProblemCallback func)82 psMemProblemCallback psMemProblemCallbackSet(psMemProblemCallback func) 81 83 { 82 84 psMemProblemCallback old = memProblemCallback; … … 140 142 static psMemFreeCallback memFreeCallback = memFreeCallbackDefault; 141 143 142 psMemAllocateCallback psMemAllocate SetCallback(psMemAllocateCallback func)144 psMemAllocateCallback psMemAllocateCallbackSet(psMemAllocateCallback func) 143 145 { 144 146 psMemFreeCallback old = memAllocateCallback; … … 199 201 200 202 if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) { 201 psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted", m->id); 203 psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%x %x)", 204 m->id,m->startblock,m->endblock); 202 205 return(1); 203 206 } … … 280 283 } else { 281 284 psMemBlock *ptr = ((psMemBlock *)vptr) - 1; 285 bool isBlockLast = false; 282 286 283 287 pthread_mutex_lock(&memBlockListMutex); 284 288 289 isBlockLast = (ptr == lastMemBlockAllocated); 290 285 291 ptr = (psMemBlock*)realloc(ptr, sizeof(psMemBlock) + size); 292 293 if (ptr == NULL) { 294 psAbort(__func__, "Failed to reallocate %ld bytes at %s:%d", 295 size, file, lineno); 296 } 297 298 if (isBlockLast) { 299 lastMemBlockAllocated = ptr; 300 } 286 301 287 302 // the block location may have changed, so fix the linked list addresses.
Note:
See TracChangeset
for help on using the changeset viewer.
