This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | memHandler |
Functions | |
| memHandler * | pushMemHandler (struct memHandler *newHandler) |
| memHandler * | popMemHandler () |
| void | setDefaultMemHandler () |
| void | pushCarefulMemHandler (size_t maxAlloc) |
| void | carefulCheckHeap () |
| int | carefulCountBlocksAllocated () |
| long | carefulTotalAllocated () |
| void | setMaxAlloc (size_t s) |
| void | memTrackerStart () |
| void | memTrackerEnd () |
| void carefulCheckHeap | ( | ) |
Definition at line 342 of file memalloc.c.
References carefulParent, cmbAllocedList, cmbEndCookie, cmbStartCookie, errAbort(), dlList::head, carefulMemBlock::next, ptrToLL, carefulMemBlock::size, and carefulMemBlock::startCookie.
00345 { 00346 int maxPieces = 10000000; /* Assume no more than this many pieces allocated. */ 00347 struct carefulMemBlock *cmb; 00348 char *pEndCookie; 00349 size_t size; 00350 00351 if (carefulParent == NULL) 00352 return; 00353 00354 for (cmb = (struct carefulMemBlock *)(cmbAllocedList->head); cmb->next != NULL; cmb = cmb->next) 00355 { 00356 size = cmb->size; 00357 pEndCookie = (((char *)(cmb+1)) + size); 00358 if (cmb->startCookie != cmbStartCookie) 00359 errAbort("Bad start cookie %x checking %llx\n", cmb->startCookie, 00360 ptrToLL(cmb+1)); 00361 if (memcmp(pEndCookie, cmbEndCookie, sizeof(cmbEndCookie)) != 0) 00362 errAbort("Bad end cookie %x%x%x%x checking %llx\n", 00363 pEndCookie[0], pEndCookie[1], pEndCookie[2], pEndCookie[3], 00364 ptrToLL(cmb+1)); 00365 if (--maxPieces == 0) 00366 errAbort("Loop or more than 10000000 pieces in memory list"); 00367 } 00368 }
Here is the call graph for this function:

| int carefulCountBlocksAllocated | ( | ) |
Definition at line 370 of file memalloc.c.
References cmbAllocedList, and dlCount().
00372 { 00373 return dlCount(cmbAllocedList); 00374 }
Here is the call graph for this function:

| long carefulTotalAllocated | ( | ) |
Definition at line 376 of file memalloc.c.
References carefulAlloced.
00378 { 00379 return carefulAlloced; 00380 }
| void memTrackerEnd | ( | ) |
Definition at line 471 of file memalloc.c.
References dlListFree, errAbort(), freeMem(), memTracker::handler, memTracker::list, memTracker, and popMemHandler().
Referenced by errorSafePcr(), and errorSafeQuery().
00473 { 00474 struct memTracker *mt = memTracker; 00475 if (mt == NULL) 00476 errAbort("memTrackerEnd without memTrackerStart"); 00477 memTracker = NULL; 00478 popMemHandler(); 00479 dlListFree(&mt->list); 00480 freeMem(mt->handler); 00481 freeMem(mt); 00482 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void memTrackerStart | ( | ) |
Definition at line 451 of file memalloc.c.
References memHandler::alloc, AllocVar, dlListNew, errAbort(), memHandler::free, memTracker::handler, memTracker::list, memTracker, memTrackerAlloc(), memTrackerFree(), memTrackerRealloc(), memTracker::parent, pushMemHandler(), and memHandler::realloc.
Referenced by errorSafeSetup().
00456 { 00457 struct memTracker *mt; 00458 00459 if (memTracker != NULL) 00460 errAbort("multiple memTrackerStart calls"); 00461 AllocVar(mt); 00462 AllocVar(mt->handler); 00463 mt->handler->alloc = memTrackerAlloc; 00464 mt->handler->free = memTrackerFree; 00465 mt->handler->realloc = memTrackerRealloc; 00466 mt->list = dlListNew(); 00467 mt->parent = pushMemHandler(mt->handler); 00468 memTracker = mt; 00469 }
Here is the call graph for this function:

Here is the caller graph for this function:

| struct memHandler* popMemHandler | ( | ) | [read] |
Definition at line 57 of file memalloc.c.
References defaultMemHandler, errAbort(), mhStack, and memHandler::next.
Referenced by memTrackerEnd().
00059 { 00060 struct memHandler *oldHandler = mhStack; 00061 if (mhStack == &defaultMemHandler) 00062 errAbort("Too many popMemHandlers()"); 00063 mhStack = mhStack->next; 00064 return oldHandler; 00065 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void pushCarefulMemHandler | ( | size_t | maxAlloc | ) |
Definition at line 391 of file memalloc.c.
References carefulMemHandler, carefulMemInit(), carefulParent, and pushMemHandler().
00394 { 00395 carefulMemInit(maxAlloc); 00396 carefulParent = pushMemHandler(&carefulMemHandler); 00397 }
Here is the call graph for this function:

| struct memHandler* pushMemHandler | ( | struct memHandler * | newHandler | ) | [read] |
Definition at line 47 of file memalloc.c.
References mhStack, and slAddHead.
Referenced by memTrackerStart(), and pushCarefulMemHandler().
00050 { 00051 struct memHandler *oldHandler = mhStack; 00052 slAddHead(&mhStack, newHandler); 00053 return oldHandler; 00054 }
Here is the caller graph for this function:

| void setDefaultMemHandler | ( | ) |
Definition at line 68 of file memalloc.c.
References defaultMemHandler, and mhStack.
00070 { 00071 mhStack = &defaultMemHandler; 00072 }
| void setMaxAlloc | ( | size_t | s | ) |
1.5.2