MCPcopy Create free account
hub / github.com/catboost/catboost / Y_FORCE_INLINE Free

Function Y_FORCE_INLINE Free

library/cpp/balloc/balloc.cpp:32–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30 }
31
32 static void Y_FORCE_INLINE Free(void* ptr) {
33 if (ptr == nullptr) {
34 return;
35 }
36 TAllocHeader* allocHeader = ((TAllocHeader*)ptr) - 1;
37 size_t size = allocHeader->AllocSize;
38 const size_t signature = size & SIGNATURE_MASK;
39 if (Y_LIKELY(signature == ALIVE_SIGNATURE)) {
40 allocHeader->AllocSize = 0; // abort later on double free
41#ifdef DBG_FILL_MEMORY
42 memset(ptr, 0xde, size - signature);
43#endif
44 FreeRaw(allocHeader->Block);
45 if (NAllocStats::IsEnabled()) {
46 NAllocStats::DecThreadAllocStats(size - signature);
47 }
48 } else if (signature == DISABLED_SIGNATURE) {
49 LibcFree(allocHeader->Block);
50 } else {
51 NMalloc::AbortFromCorruptedAllocator();
52 }
53 }
54
55 static bool Y_FORCE_INLINE IsOwnedByBalloc(void* ptr) {
56 TAllocHeader* allocHeader = ((TAllocHeader*)ptr) - 1;

Callers

nothing calls this directly

Calls 3

DecThreadAllocStatsFunction · 0.85
IsEnabledFunction · 0.50

Tested by

no test coverage detected