| 501 | } |
| 502 | |
| 503 | void omIterateTroughAddrs(int normal, int track, void (*CallBackUsed)(void*), void (*CallBackFree)(void*)) |
| 504 | { |
| 505 | int i; |
| 506 | omSpecBin s_bin; |
| 507 | omBin sticky; |
| 508 | |
| 509 | if (normal) |
| 510 | { |
| 511 | for (i=0; i<=OM_MAX_BIN_INDEX; i++) |
| 512 | { |
| 513 | omIterateTroughBinAddrs(&om_StaticBin[i], CallBackUsed, CallBackFree); |
| 514 | } |
| 515 | s_bin = om_SpecBin; |
| 516 | while (s_bin != NULL) |
| 517 | { |
| 518 | omIterateTroughBinAddrs(s_bin->bin, CallBackUsed, CallBackFree); |
| 519 | s_bin = s_bin->next; |
| 520 | } |
| 521 | } |
| 522 | |
| 523 | #ifdef OM_HAVE_TRACK |
| 524 | if (track) |
| 525 | { |
| 526 | for (i=0; i<=OM_MAX_BIN_INDEX; i++) |
| 527 | { |
| 528 | omIterateTroughBinAddrs(&om_StaticTrackBin[i], CallBackUsed, CallBackFree); |
| 529 | } |
| 530 | s_bin = om_SpecTrackBin; |
| 531 | while (s_bin != NULL) |
| 532 | { |
| 533 | omIterateTroughBinAddrs(s_bin->bin, CallBackUsed, CallBackFree); |
| 534 | s_bin = s_bin->next; |
| 535 | } |
| 536 | } |
| 537 | #endif |
| 538 | sticky = om_StickyBins; |
| 539 | while (sticky != NULL) |
| 540 | { |
| 541 | omIterateTroughBinAddrs(sticky, CallBackUsed, CallBackFree); |
| 542 | sticky = sticky->next; |
| 543 | } |
| 544 | } |
| 545 | |
| 546 | static FILE* om_print_used_addr_fd; |
| 547 | static size_t om_total_used_size; |
no test coverage detected