MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / validate

Method validate

src/common/classes/alloc.cpp:2714–2743  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2712}
2713
2714bool MemPool::validate(char* buf, FB_SIZE_T size)
2715{
2716 StatInt vMap = 0, vUse = 0;
2717
2718 smallObjects.validate(this, vMap, vUse);
2719 mediumObjects.validate(this, vMap, vUse);
2720
2721 // validate big objects
2722 for (MemBigHunk* h = bigHunks; h; h = h->next)
2723 h->validate(this, vMap, vUse);
2724
2725 // validate blocks redirected to parent
2726 for (FB_SIZE_T n = 0; n < parentRedirected.getCount(); ++n)
2727 {
2728 MemBlock* b = parentRedirected[n];
2729 if (!b->isExtent())
2730 vUse += parentRedirected[n]->getSize();
2731 }
2732
2733 if (vMap != mapped_memory.value() || vUse != used_memory.value())
2734 {
2735 char buf[256];
2736 fb_utils::snprintf(buf, sizeof(buf), "Memory statistics does not match pool: "
2737 "mapped=%" SQUADFORMAT "(%" SQUADFORMAT " st), used=%" SQUADFORMAT "(%" SQUADFORMAT " st)",
2738 SINT64(vMap), SINT64(mapped_memory.value()), SINT64(vUse), SINT64(used_memory.value()));
2739 return false;
2740 }
2741
2742 return true;
2743}
2744
2745#ifdef MEM_DEBUG
2746void MemPool::print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept

Callers 4

validateMethod · 0.45
validateMethod · 0.45
validateMethod · 0.45
validateMethod · 0.45

Calls 5

isExtentMethod · 0.80
snprintfFunction · 0.50
getCountMethod · 0.45
getSizeMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected