Changeset 753 for trunk/archive/pslib/src/Utils/memory.c
- Timestamp:
- May 20, 2004, 6:12:37 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/archive/pslib/src/Utils/memory.c (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/pslib/src/Utils/memory.c
r687 r753 48 48 * First the I-can't-get-the-memory callback 49 49 */ 50 static void *memExhaustedC B0(size_t size)50 static void *memExhaustedCallback0(size_t size) 51 51 { 52 52 return NULL; 53 53 } 54 static psMemExhaustedC B memExhaustedCB = memExhaustedCB0;55 56 psMemExhaustedC B psMemExhaustedCBSet(psMemExhaustedCBfunc)57 { 58 psMemExhaustedC B old = memExhaustedCB;59 60 memExhaustedC B = (func != NULL) ? func : memExhaustedCB0;54 static psMemExhaustedCallback memExhaustedCallback = memExhaustedCallback0; 55 56 psMemExhaustedCallback psMemExhaustedCallbackSet(psMemExhaustedCallback func) 57 { 58 psMemExhaustedCallback old = memExhaustedCallback; 59 60 memExhaustedCallback = (func != NULL) ? func : memExhaustedCallback0; 61 61 62 62 return old; … … 65 65 * then the I-have-detected-a-problem callback 66 66 */ 67 static void memProblemC B0(const psMemBlock *ptr,67 static void memProblemCallback0(const psMemBlock *ptr, 68 68 const char *file, int lineno) 69 69 { … … 76 76 fprintf(stderr, "\n"); 77 77 } else if (ptr->refCounter <= 0) { 78 psError(__func__, PS_ERR_BADFREE, PS_NEW_ERROR,78 psError(__func__, PS_ERR_BADFREE, 1, 79 79 "Block %ld allocated at %s:%d freed more than once at %s:%d\n", 80 80 ptr->id, ptr->file, ptr->lineno, file, lineno); 81 81 } else if (ptr->refCounter > 1) { 82 psError(__func__, PS_ERR_BADFREE, PS_NEW_ERROR,82 psError(__func__, PS_ERR_BADFREE, 1, 83 83 "Block %ld allocated at %s:%d freed while still referenced at %s:%d\n", 84 84 ptr->id, ptr->file, ptr->lineno, file, lineno); … … 89 89 } 90 90 } 91 static psMemProblemC B memProblemCB = memProblemCB0;92 93 psMemProblemC B psMemProblemCBSet(psMemProblemCBfunc)94 { 95 psMemProblemC B old = memProblemCB;96 97 memProblemC B = (func != NULL) ? func : memProblemCB0;91 static psMemProblemCallback memProblemCallback = memProblemCallback0; 92 93 psMemProblemCallback psMemProblemCallbackSet(psMemProblemCallback func) 94 { 95 psMemProblemCallback old = memProblemCallback; 96 97 memProblemCallback = (func != NULL) ? func : memProblemCallback0; 98 98 99 99 return old; … … 129 129 * isn't resignalled) 130 130 */ 131 static long memAllocateC B0(const psMemBlock *ptr)131 static long memAllocateCallback0(const psMemBlock *ptr) 132 132 { 133 133 static int incr = 0; // "p_psMemAllocateID += incr" … … 138 138 } 139 139 140 static long memFreeC B0(const psMemBlock *ptr)140 static long memFreeCallback0(const psMemBlock *ptr) 141 141 { 142 142 static int incr = 0; // "p_psMemFreeID += incr" … … 150 150 * The default callbacks, and the routines to change them 151 151 */ 152 static psMemAllocateC B memAllocateCB = memAllocateCB0;153 static psMemFreeC B memFreeCB = memFreeCB0;154 155 psMemAllocateC B psMemAllocateCBSet(psMemAllocateCBfunc)156 { 157 psMemAllocateC B old = memAllocateCB;158 159 memAllocateC B = (func != NULL) ? func : memAllocateCB0;160 161 return old; 162 } 163 164 psMemFreeC B psMemFreeCBSet(psMemFreeCBfunc)165 { 166 psMemFreeC B old = memFreeCB;167 168 memFreeC B = (func != NULL) ? func : memFreeCB0;152 static psMemAllocateCallback memAllocateCallback = memAllocateCallback0; 153 static psMemFreeCallback memFreeCallback = memFreeCallback0; 154 155 psMemAllocateCallback psMemAllocateCallbackSet(psMemAllocateCallback func) 156 { 157 psMemAllocateCallback old = memAllocateCallback; 158 159 memAllocateCallback = (func != NULL) ? func : memAllocateCallback0; 160 161 return old; 162 } 163 164 psMemFreeCallback psMemFreeCallbackSet(psMemFreeCallback func) 165 { 166 psMemFreeCallback old = memFreeCallback; 167 168 memFreeCallback = (func != NULL) ? func : memFreeCallback0; 169 169 170 170 return old; … … 194 194 if (m == NULL) { 195 195 if (!quiet) { 196 psError(__func__, PS_ERR_MEMORY_CORRUPTION, PS_NEW_ERROR,196 psError(__func__, PS_ERR_MEMORY_CORRUPTION, 1, 197 197 "psMemCheckCorruption: NULL memory block\n"); 198 198 } … … 202 202 if (!ALIGNED(m)) { 203 203 if (!quiet) { 204 psError(__func__, PS_ERR_MEMORY_CORRUPTION, PS_NEW_ERROR,204 psError(__func__, PS_ERR_MEMORY_CORRUPTION, 1, 205 205 "psMemCheckCorruption: non-aligned memory block\n"); 206 206 } … … 210 210 if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) { 211 211 if (!quiet) { 212 psError(__func__, PS_ERR_MEMORY_CORRUPTION, PS_NEW_ERROR,212 psError(__func__, PS_ERR_MEMORY_CORRUPTION, 1, 213 213 "psMemCheckCorruption: memory block %ld is corrupted\n", m->id); 214 214 } … … 232 232 nbad++; 233 233 234 memProblemC B(memBlocks[i], "(psMemCheckCorruption)", 0);234 memProblemCallback(memBlocks[i], "(psMemCheckCorruption)", 0); 235 235 236 236 if (abort_on_error) { … … 251 251 252 252 if (ptr == NULL) { 253 ptr = memExhaustedC B(size);253 ptr = memExhaustedCallback(size); 254 254 if (ptr == NULL) { 255 255 psAbort(__func__, "Failed to allocate %ld bytes at %s:%d", … … 270 270 271 271 if (ptr->id == p_psMemAllocateID && p_psMemAllocateID > 0) { 272 p_psMemAllocateID += memAllocateC B(ptr);272 p_psMemAllocateID += memAllocateCallback(ptr); 273 273 } 274 274 /* … … 310 310 */ 311 311 if (ptr->id == p_psMemFreeID && p_psMemFreeID > 0) { 312 p_psMemFreeID += memFreeC B(ptr);312 p_psMemFreeID += memFreeCallback(ptr); 313 313 } 314 314 315 315 if (bad_memblock(ptr, 0)) { 316 memProblemC B(ptr, file, lineno); // we may not own this block; don't free it316 memProblemCallback(ptr, file, lineno); // we may not own this block; don't free it 317 317 } else { 318 318 if (ptr->refCounter != 1) { 319 memProblemC B(ptr, file, lineno);319 memProblemCallback(ptr, file, lineno); 320 320 } 321 321 ptr->refCounter--; … … 396 396 397 397 if (bad_memblock(ptr, 0)) { 398 memProblemC B(ptr, "(psMemGetRefCounter)", -1);398 memProblemCallback(ptr, "(psMemGetRefCounter)", -1); 399 399 } 400 400 … … 411 411 412 412 if (bad_memblock(ptr, 0)) { 413 memProblemC B(ptr, "(psMemIncrRefCounter)", -1);413 memProblemCallback(ptr, "(psMemIncrRefCounter)", -1); 414 414 } 415 415 … … 428 428 429 429 if (bad_memblock(ptr, 0)) { 430 memProblemC B(ptr, "(psMemDecrRefCounter)", -1);430 memProblemCallback(ptr, "(psMemDecrRefCounter)", -1); 431 431 } 432 432
Note:
See TracChangeset
for help on using the changeset viewer.
