Doxygen Source Code Documentation
mcw_malloc.c File Reference
#include "mcw_malloc.h"#include "Amalloc.h"#include "debugtrace.h"Go to the source code of this file.
Data Structures | |
| struct | mallitem |
Defines | |
| #define | MAGIC ((char) 0xd7) |
| #define | NEXTRA (2*sizeof(int)) |
| #define | UINT unsigned int |
| #define | NTB 5 |
| #define | SLOTS 8191 |
| #define | INLINE |
| #define | ADD_TRACEBACK(ip) |
| #define | shift_tracker(fff) ptr_tracker( ((char *)(fff)) - NEXTRA ) |
| #define | JBASE 32768 |
Functions | |
| INLINE UINT | mallkey (char *fred) |
| mallitem * | ptr_tracker (void *fred) |
| mallitem * | find_empty_slot (int jj) |
| void | add_tracker (void *fred, size_t n, char *fn, int ln) |
| void * | malloc_track (size_t n, char *fn, int ln) |
| void | probe_track (mallitem *ip) |
| void * | realloc_track (mallitem *ip, size_t n, char *fn, int ln) |
| void * | calloc_track (size_t n, size_t m, char *fn, int ln) |
| void | free_track (mallitem *ip) |
| char * | mcw_malloc_status (const char *fn, int ln) |
| int | THD_is_file (char *) |
| void | qsort_intint (int, int *, int *) |
| void | mcw_malloc_dump (void) |
| void | enable_mcw_malloc () |
| void | pause_mcw_malloc () |
| void | resume_mcw_malloc () |
| int | mcw_malloc_paused () |
| int | mcw_malloc_enabled () |
| void * | mcw_malloc (size_t n, char *fnam, int lnum) |
| void * | mcw_realloc (void *fred, size_t n, char *fnam, int lnum) |
| void * | mcw_calloc (size_t n, size_t m, char *fnam, int lnum) |
| void | mcw_free (void *fred) |
| char * | mcw_XtMalloc (Cardinal n, char *fnam, int lnum) |
| char * | mcw_XtRealloc (char *p, Cardinal n, char *fnam, int lnum) |
| void | mcw_XtFree (char *p) |
| char * | mcw_XtCalloc (Cardinal n, Cardinal m, char *fnam, int lnum) |
Variables | |
| mallitem ** | htab = NULL |
| int * | nhtab = NULL |
| UINT | serial = 0 |
| const char * | pr_nam = NULL |
| int | pr_lin = 0 |
| int | use_tracking = 0 |
| int | pz = 0 |
Define Documentation
|
|
Value: do{ int tt ; \ for( tt=1 ; tt <= NTB ; tt++ ) \ ip->ptb[tt-1] = (tt < DBG_num) ? DBG_rout[DBG_num-tt] : NULL; } while(0) Definition at line 76 of file mcw_malloc.c. Referenced by add_tracker(), and realloc_track(). |
|
|
Definition at line 72 of file mcw_malloc.c. Referenced by mallkey(). |
|
|
|
|
|
Definition at line 17 of file mcw_malloc.c. Referenced by malloc_track(), probe_track(), and realloc_track(). |
|
|
Definition at line 18 of file mcw_malloc.c. Referenced by malloc_track(), probe_track(), and realloc_track(). |
|
|
Definition at line 39 of file mcw_malloc.c. Referenced by mcw_malloc_dump(), and probe_track(). |
|
|
Definition at line 122 of file mcw_malloc.c. Referenced by hidden_NI_free(), hidden_NI_realloc(), mcw_free(), mcw_realloc(), mcw_XtFree(), and mcw_XtRealloc(). |
|
|
define SLOTS 503 * Definition at line 59 of file mcw_malloc.c. Referenced by add_tracker(), enable_mcw_malloc(), mcw_malloc_dump(), mcw_malloc_status(), ptr_tracker(), and realloc_track(). |
|
|
Definition at line 34 of file mcw_malloc.c. Referenced by mallkey(), and mcw_malloc_status(). |
Function Documentation
|
||||||||||||||||||||
|
Add an entry to the hash table, given the address, the user's size, and the filename and line number. ------------------------------------------------------------------ Definition at line 157 of file mcw_malloc.c. References ADD_TRACEBACK, find_empty_slot(), mallkey(), mallitem::pfn, mallitem::pln, mallitem::pmt, mallitem::pss, mallitem::psz, serial, and SLOTS.
00158 {
00159 int jj ;
00160 mallitem * ip ;
00161
00162 if( fred == NULL ) return ; /* bad news */
00163
00164 jj = mallkey((char *)fred) % SLOTS ; /* which hash list to use */
00165 ip = find_empty_slot(jj) ; /* get an empty slot in this list */
00166
00167 /* now put the data into the hash table */
00168
00169 ip->pmt = fred ;
00170 ip->psz = n ;
00171 ip->pfn = fn ;
00172 ip->pln = ln ;
00173 ip->pss = ++serial ;
00174
00175 ADD_TRACEBACK(ip) ; /* 16 Feb 2001 */
00176
00177 return ;
00178 }
|
|
||||||||||||||||||||
|
Tracking replacement for calloc(). ------------------------------------------------------------------- Definition at line 318 of file mcw_malloc.c. References malloc_track().
00319 {
00320 void * fred ;
00321 size_t nn = n*m ;
00322
00323 fred = malloc_track(nn,fn,ln) ; if( fred == NULL ) return NULL ;
00324 memset( fred , 0 , nn ) ;
00325 return fred ;
00326 }
|
|
|
Definition at line 494 of file mcw_malloc.c. References getenv(), malloc, nhtab, SLOTS, and use_tracking. Referenced by machdep(), and main().
00495 {
00496 char * str = getenv("AFNI_NO_MCW_MALLOC") ; /* NOT my_getenv */
00497
00498 if( use_tracking ) return ; /* 05 Nov 2001 */
00499
00500 use_tracking = 1 ;
00501 if( str!=NULL && ( str[0]=='y' || str[0]=='Y') ) use_tracking = 0 ;
00502
00503 if( use_tracking && htab == NULL ){ /* initialize hash table */
00504 int jj ;
00505 htab = (mallitem **) malloc( SLOTS * sizeof(mallitem *) ) ;
00506 nhtab = (int *) malloc( SLOTS * sizeof(int) ) ;
00507 for( jj=0 ; jj < SLOTS ; jj++ ){
00508 htab[jj] = NULL ; nhtab[jj] = 0 ;
00509 }
00510 }
00511
00512 return ;
00513 }
|
|
|
Find an empty entry in the hash table list [jj] and return a pointer to it. Will create the entry, if need be. ------------------------------------------------------------------- Definition at line 129 of file mcw_malloc.c. References malloc, nhtab, mallitem::pmt, and realloc.
00130 {
00131 int kk ;
00132
00133 if( htab[jj] == NULL ){ /* must make new list */
00134 htab[jj] = (mallitem *) malloc(sizeof(mallitem)) ; /* of length 1 at [jj] */
00135 nhtab[jj] = 1 ;
00136 kk = 0 ;
00137 htab[jj][0].pmt = NULL ; /* mark as empty */
00138 } else {
00139 for( kk=nhtab[jj]-1 ; kk >= 0 ; kk-- ) /* scan (backwards) for NULL entry */
00140 if( htab[jj][kk].pmt == NULL ) break ; /* found it? */
00141
00142 if( kk < 0 ){ /* must make list longer */
00143 kk = nhtab[jj] ; nhtab[jj]++ ;
00144 htab[jj] = (mallitem *) realloc( htab[jj], sizeof(mallitem)*nhtab[jj] ) ;
00145 htab[jj][kk].pmt = NULL ; /* mark as empty */
00146 }
00147 }
00148
00149 return (htab[jj]+kk) ;
00150 }
|
|
|
Definition at line 332 of file mcw_malloc.c. References free, mallitem::pmt, pr_nam, and probe_track().
00333 {
00334 char * cfred ;
00335
00336 if( ip == NULL ) return ;
00337 cfred = (char *) ip->pmt ;
00338 if( cfred == NULL ) return ;
00339
00340 pr_nam = NULL ;
00341 probe_track(ip) ; /* check for integrity before freeing */
00342
00343 free(cfred) ; ip->pmt = NULL ; return ;
00344 }
|
|
|
Compute a unique non-negative integer key from an address ----------------------------------------------------------------- Definition at line 88 of file mcw_malloc.c. References INLINE, q, and UINT.
|
|
||||||||||||||||
|
The tracking replacement for malloc(). ------------------------------------------------------------------- Definition at line 184 of file mcw_malloc.c. References add_tracker(), MAGIC, malloc, and NEXTRA.
00185 {
00186 char * fred ;
00187 size_t nn = n + 2*NEXTRA ;
00188 int ii ;
00189
00190 fred = (char *) malloc(nn) ;
00191 if( fred == NULL ){ /* real bad news */
00192 fprintf(stderr,
00193 "\n*** MCW_malloc(%d) from %s#%d FAILS!\a\n", /* 02 Jan 2002 */
00194 (int)n , fn , ln ) ;
00195 return NULL ;
00196 }
00197
00198 /* mark overrun buffers */
00199
00200 for( ii=0 ; ii < NEXTRA ; ii++ )
00201 fred[ii] = fred[n+NEXTRA+ii] = MAGIC ;
00202
00203 add_tracker(fred,n,fn,ln) ; /* put in hash table */
00204 return (void *)(fred+NEXTRA) ;
00205 }
|
|
||||||||||||||||||||
|
Definition at line 580 of file mcw_malloc.c. References calloc, and calloc_track().
00581 {
00582 if( use_tracking ) return calloc_track( n , m , fnam,lnum ) ;
00583 else return calloc( n , m ) ;
00584 }
|
|
|
Definition at line 590 of file mcw_malloc.c. References free, free_track(), shift_tracker, and use_tracking.
00591 {
00592 mallitem * ip ;
00593
00594 if( fred == NULL ) return ;
00595
00596 if( use_tracking && (ip=shift_tracker(fred)) != NULL ) free_track( ip ) ;
00597 else free( fred ) ;
00598 }
|
|
||||||||||||||||
|
Definition at line 553 of file mcw_malloc.c. References malloc, and malloc_track(). Referenced by mcw_realloc().
00554 {
00555 if( use_tracking ) return malloc_track(n,fnam,lnum) ;
00556 else return malloc(n) ;
00557 }
|
|
|
Definition at line 380 of file mcw_malloc.c. References free, malloc, mcw_malloc_status(), nhtab, NTB, mallitem::pmt, mallitem::pss, mallitem::ptb, qsort_intint(), SLOTS, THD_is_file(), tt, and use_tracking. Referenced by AFNI_misc_CB(), and SUMA_input().
00381 {
00382 int ii,jj,kk ;
00383 char fname[32] , * str ;
00384 FILE * fp = NULL ;
00385 int nptr=0 ;
00386 int * ss , * jk ;
00387
00388 if( ! use_tracking ) return ;
00389
00390 /* find and open an output file */
00391
00392 for( ii=1 ; ii < 1000 ; ii++ ){
00393 sprintf(fname,"malldump.%03d",ii) ;
00394 if( THD_is_file(fname) ) continue ;
00395 fp = fopen( fname , "w" ) ;
00396 if( fp == NULL ){
00397 fprintf(stderr,"** Unable to open file %s for malloc table dump!\n",
00398 fname ) ;
00399 return ;
00400 }
00401 break ;
00402 }
00403
00404 if( fp == NULL ){
00405 fprintf(stderr,"** Attempt to exceed 999 malloc table dump files!\n") ;
00406 return ;
00407 }
00408
00409 /* count number of entries in the hash table */
00410
00411 for( jj=0 ; jj < SLOTS ; jj++ ){
00412 for( kk=0 ; kk < nhtab[jj] ; kk++ ){
00413 if( htab[jj][kk].pmt != NULL ) nptr++ ;
00414 }
00415 }
00416
00417 if( nptr < 1 ){
00418 fprintf(fp ,"--- Nothing is malloc()-ed !? ---\n") ;
00419 fprintf(stderr,"--- Nothing is malloc()-ed !? ---\n") ;
00420 fclose(fp) ;
00421 }
00422
00423 /* setup to sort by serial number */
00424
00425 ss = (int *) malloc(sizeof(int)*nptr) ; /* serial number */
00426 jk = (int *) malloc(sizeof(int)*nptr) ; /* holds combination of jj and kk */
00427
00428 #define JBASE 32768 /* JBASE * SLOTS must be less than max int */
00429
00430 /* scan table for non-NULL entries */
00431
00432 for( ii=jj=0 ; jj < SLOTS ; jj++ ){
00433 for( kk=0 ; kk < nhtab[jj] ; kk++ ){
00434 if( htab[jj][kk].pmt != NULL ){
00435 ss[ii] = htab[jj][kk].pss ; /* save serial number */
00436 jk[ii] = JBASE*jj + kk ; /* save jj and kk */
00437 ii++ ;
00438 }
00439 }
00440 }
00441
00442 qsort_intint( nptr , ss , jk ) ; /* sort by ss, carrying jk along */
00443
00444 /* now print table in serial number order */
00445
00446 #ifdef USE_TRACING
00447 fprintf(fp, "MCW Malloc Table Dump:\n"
00448 "serial# size source file line# address hash(j,k) <- Called by\n"
00449 "------- ---------- -------------------- ----- ---------- ----- --- ---------\n");
00450 #else
00451 fprintf(fp, "MCW Malloc Table Dump:\n"
00452 "serial# size source file line# address hash(j,k)\n"
00453 "------- ---------- -------------------- ----- ---------- ----- ---\n") ;
00454 #endif
00455
00456 for( ii=0 ; ii < nptr ; ii++ ){
00457 jj = jk[ii] / JBASE ; /* retrieve jj and kk */
00458 kk = jk[ii] % JBASE ;
00459 if( htab[jj][kk].pmt != NULL ){
00460 fprintf(fp,"%7u %10d %-20.30s %5d %10p %5d %3d",
00461 htab[jj][kk].pss , (int)htab[jj][kk].psz ,
00462 htab[jj][kk].pfn , htab[jj][kk].pln , htab[jj][kk].pmt ,
00463 jj,kk ) ;
00464 #ifdef USE_TRACING
00465 { int tt ;
00466 for( tt=0 ; tt < NTB && htab[jj][kk].ptb[tt] != NULL ; tt++ )
00467 fprintf(fp," <- %s",htab[jj][kk].ptb[tt]) ;
00468 }
00469 #endif
00470 fprintf(fp,"\n") ;
00471 }
00472 else
00473 fprintf(fp,"*** Error at ii=%d jj=%d kk=%d\n",ii,jj,kk) ;
00474 }
00475
00476 free(ss) ; free(jk) ;
00477
00478 /* and print out the summary line (to the file and screen) */
00479
00480 str = mcw_malloc_status(NULL,0) ;
00481 fprintf(fp,"----- Summary: %s\n",str) ;
00482 fclose(fp) ;
00483
00484 fprintf(stderr,"** Malloc table dumped to file %s\n",fname) ;
00485 fprintf(stderr,"** Summary: %s\n",str) ;
00486
00487 return ;
00488 }
|
|
|
Definition at line 547 of file mcw_malloc.c. References use_tracking.
00547 { return (use_tracking != 0) ; }
|
|
|
Definition at line 539 of file mcw_malloc.c.
00540 {
00541 return(pz);
00542 }
|
|
||||||||||||
|
Definition at line 352 of file mcw_malloc.c. References nhtab, mallitem::pmt, pr_lin, pr_nam, probe_track(), mallitem::psz, SLOTS, UINT, and use_tracking. Referenced by mcw_malloc_dump().
00353 {
00354 static char buf[128] = "\0" ;
00355 int jj,kk , nptr=0 ; size_t nbyt=0 ;
00356
00357 if( ! use_tracking ) return NULL ;
00358
00359 for( jj=0 ; jj < SLOTS ; jj++ ){
00360 for( kk=0 ; kk < nhtab[jj] ; kk++ ){
00361 if( htab[jj][kk].pmt != NULL ){
00362 pr_nam = (const char *)fn ; pr_lin = ln ;
00363 probe_track( htab[jj]+kk ) ; /* check for integrity */
00364 nptr++ ; nbyt += htab[jj][kk].psz ;
00365 }
00366 }
00367 }
00368
00369 sprintf(buf,"chunks=%d bytes=%u",nptr,(UINT)nbyt) ;
00370 return buf ;
00371 }
|
|
||||||||||||||||||||
|
Definition at line 563 of file mcw_malloc.c. References mcw_malloc(), realloc, realloc_track(), shift_tracker, and use_tracking.
00564 {
00565 mallitem * ip ;
00566
00567 if( fred == NULL )
00568 return mcw_malloc( n , fnam , lnum ) ;
00569
00570 if( use_tracking && (ip=shift_tracker(fred)) != NULL )
00571 return realloc_track( ip , n , fnam,lnum ) ;
00572 else
00573 return realloc( fred , n ) ;
00574 }
|
|
||||||||||||||||||||
|
Definition at line 645 of file mcw_malloc.c. References calloc_track(), and XtCalloc.
00646 {
00647 if( use_tracking ) return (char *) calloc_track( n , m , fnam,lnum ) ;
00648 else return XtCalloc( n , m ) ;
00649 }
|
|
|
Definition at line 631 of file mcw_malloc.c. References free_track(), p, shift_tracker, use_tracking, and XtFree.
00632 {
00633 mallitem * ip ;
00634
00635 if( p == NULL ) return ;
00636
00637 if( use_tracking && (ip=shift_tracker(p)) != NULL ) free_track(ip) ;
00638 else XtFree(p) ;
00639 }
|
|
||||||||||||||||
|
Definition at line 604 of file mcw_malloc.c. References malloc_track(), and XtMalloc. Referenced by mcw_XtRealloc().
00605 {
00606 if( use_tracking ) return (char *) malloc_track(n,fnam,lnum) ;
00607 else return (char *)XtMalloc(n) ;
00608 }
|
|
||||||||||||||||||||
|
Definition at line 614 of file mcw_malloc.c. References mcw_XtMalloc(), p, realloc_track(), shift_tracker, use_tracking, and XtRealloc.
00615 {
00616 mallitem * ip ;
00617
00618 if( p == NULL )
00619 return mcw_XtMalloc( n , fnam , lnum ) ;
00620
00621 if( use_tracking && (ip=shift_tracker(p)) != NULL )
00622 return (char*)realloc_track( ip , n , fnam,lnum ) ;
00623 else
00624 return (char*)XtRealloc( p , n ) ;
00625 }
|
|
|
Definition at line 523 of file mcw_malloc.c. References pz, and use_tracking. Referenced by SUMA_allocate2D(), and SUMA_free2D().
00524 {
00525 if (pz) return; /* nothing to do */
00526 if (use_tracking) {
00527 pz = 1;
00528 use_tracking = 0;
00529 }
00530 return;
00531 }
|
|
|
Definition at line 214 of file mcw_malloc.c. References MAGIC, NEXTRA, NTB, mallitem::pfn, mallitem::pln, mallitem::pmt, pr_lin, pr_nam, mallitem::pss, mallitem::psz, mallitem::ptb, and tt.
00215 {
00216 int ii ;
00217 size_t n ;
00218 char * fred ;
00219
00220 if( ip == NULL ){ pr_nam=NULL; return; } /* error */
00221 fred = (char *) ip->pmt ; if( fred == NULL ){ pr_nam=NULL; return; }
00222 n = ip->psz ;
00223
00224 for( ii=0 ; ii < NEXTRA ; ii++ )
00225 if( fred[ii] != MAGIC ){
00226 fprintf(stderr,"*** MCW_malloc pre-corruption! "
00227 "serial=%u size=%d source=%s line#%d",
00228 ip->pss,(int)ip->psz,ip->pfn,ip->pln ) ;
00229 #ifdef USE_TRACING
00230 { int tt ;
00231 for( tt=0 ; tt < NTB && ip->ptb[tt] != NULL ; tt++ )
00232 fprintf(stderr," <- %s",ip->ptb[tt]) ;
00233 }
00234 #endif
00235 fprintf(stderr,"\n") ;
00236
00237 if( pr_nam != NULL )
00238 fprintf(stderr," [[ Called from source=%.50s line#%d ]]\n",pr_nam,pr_lin);
00239 break ;
00240 }
00241
00242 for( ii=0 ; ii < NEXTRA ; ii++ )
00243 if( fred[n+NEXTRA+ii] != MAGIC ){
00244 fprintf(stderr,"*** MCW_malloc post-corruption! "
00245 "serial=%u size=%d source=%s line#%d\n",
00246 ip->pss,(int)ip->psz,ip->pfn,ip->pln ) ;
00247 #ifdef USE_TRACING
00248 { int tt ;
00249 for( tt=0 ; tt < NTB && ip->ptb[tt] != NULL ; tt++ )
00250 fprintf(stderr," <- %s",ip->ptb[tt]) ;
00251 }
00252 #endif
00253 fprintf(stderr,"\n") ;
00254
00255 if( pr_nam != NULL )
00256 fprintf(stderr," [[ Called from source=%.50s line#%d ]]\n",pr_nam,pr_lin);
00257 break ;
00258 }
00259
00260 pr_nam = NULL ; /* reset */
00261 return ;
00262 }
|
|
|
Find an address in the hash table; returns a pointer to the NI_mallitem that owns it (or NULL) ------------------------------------------------------------------ Definition at line 103 of file mcw_malloc.c. References mallkey(), nhtab, mallitem::pmt, and SLOTS.
00104 {
00105 int jj,kk ;
00106
00107 if( fred == NULL ) return NULL ;
00108
00109 jj = mallkey((char *)fred) % SLOTS ; /* hash table location */
00110
00111 if( htab[jj] == NULL ) return NULL ; /* nothing there */
00112
00113 for( kk=0 ; kk < nhtab[jj] ; kk++ ) /* scan for match */
00114 if( htab[jj][kk].pmt == fred ) return (htab[jj]+kk) ;
00115
00116 return NULL ; /* no match found */
00117 }
|
|
||||||||||||||||
|
Definition at line 763 of file niml_malloc.c.
00764 {
00765 qsrec_intint( n , a , ia , QS_CUTOFF ) ;
00766 isort_intint( n , a , ia ) ;
00767 return ;
00768 }
|
|
||||||||||||||||||||
|
Definition at line 268 of file mcw_malloc.c. References ADD_TRACEBACK, add_tracker(), MAGIC, mallkey(), NEXTRA, mallitem::pfn, mallitem::pln, mallitem::pmt, pr_lin, pr_nam, probe_track(), mallitem::pss, mallitem::psz, realloc, serial, and SLOTS.
00269 {
00270 char * nfred , * cfred ;
00271 size_t nn = n + 2*NEXTRA ;
00272 int ii , cjj,njj , kk ;
00273
00274 if( ip == NULL ) return NULL ; /* should not happen */
00275
00276 pr_nam = (const char *)fn ; pr_lin = ln ;
00277 probe_track(ip) ; /* check for integrity before reallocation */
00278 cfred = ip->pmt ; /* old address */
00279
00280 nfred = (char*)realloc( cfred , nn ) ;
00281 if( nfred == NULL ){ /* real bad */
00282 fprintf(stderr,
00283 "\n*** MCW_realloc(%d) from %s#%d FAILS!\a\n", /* 02 Jan 2002 */
00284 (int)n , fn , ln ) ;
00285 return NULL ;
00286 }
00287
00288 for( ii=0 ; ii < NEXTRA ; ii++ )
00289 nfred[ii] = nfred[n+NEXTRA+ii] = MAGIC ;
00290
00291 cjj = mallkey(cfred) % SLOTS ; /* hash table list for old */
00292 njj = mallkey(nfred) % SLOTS ; /* and for new address */
00293
00294 if( cjj == njj ){ /* can just update old hashtable entry */
00295
00296 ip->pmt = nfred ;
00297 ip->psz = n ;
00298 ip->pfn = fn ;
00299 ip->pln = ln ;
00300 ip->pss = ++serial ;
00301
00302 ADD_TRACEBACK(ip) ; /* 16 Feb 2001 */
00303
00304 } else { /* must move into a different list */
00305
00306 add_tracker( nfred , n , fn , ln ) ;
00307
00308 ip->pmt = NULL ; /* mark old entry as free */
00309 }
00310
00311 return (void *)(nfred+NEXTRA) ;
00312 }
|
|
|
Definition at line 532 of file mcw_malloc.c. References pz, and use_tracking. Referenced by SUMA_allocate2D(), and SUMA_free2D().
00533 {
00534 if (!pz) return;
00535 pz = 0;
00536 use_tracking = 1;
00537 return;
00538 }
|
|
Variable Documentation
|
|
define SLOTS 32003 * Definition at line 64 of file mcw_malloc.c. |
|
|
Definition at line 65 of file mcw_malloc.c. Referenced by enable_mcw_malloc(), find_empty_slot(), mcw_malloc_dump(), mcw_malloc_status(), and ptr_tracker(). |
|
|
Definition at line 212 of file mcw_malloc.c. Referenced by mcw_malloc_status(), probe_track(), and realloc_track(). |
|
|
Definition at line 211 of file mcw_malloc.c. Referenced by free_track(), mcw_malloc_status(), probe_track(), and realloc_track(). |
|
|
Definition at line 522 of file mcw_malloc.c. Referenced by pause_mcw_malloc(), and resume_mcw_malloc(). |
|
|
Definition at line 66 of file mcw_malloc.c. Referenced by add_tracker(), and realloc_track(). |
|
|
Definition at line 350 of file mcw_malloc.c. Referenced by enable_mcw_malloc(), mcw_free(), mcw_malloc_dump(), mcw_malloc_enabled(), mcw_malloc_status(), mcw_realloc(), mcw_XtFree(), mcw_XtRealloc(), pause_mcw_malloc(), and resume_mcw_malloc(). |