| 1437 | } |
| 1438 | |
| 1439 | static inline void TrackPerTagDeallocation(TAllocHeader* p, int sizeIdx) { |
| 1440 | if (p->Tag < DBG_ALLOC_MAX_TAG && p->Tag >= 0) { |
| 1441 | Y_ASSERT_NOBT(sizeIdx < DBG_ALLOC_NUM_SIZES); |
| 1442 | auto& global = GlobalPerTagAllocCounters[p->Tag][sizeIdx]; |
| 1443 | |
| 1444 | TThreadAllocInfo* thr = pThreadInfo; |
| 1445 | if (thr) { |
| 1446 | auto& local = thr->LocalPerTagAllocCounters[p->Tag][sizeIdx]; |
| 1447 | local.Free(global, p->Size); |
| 1448 | } else { |
| 1449 | global.Free(p->Size); |
| 1450 | } |
| 1451 | } |
| 1452 | } |
| 1453 | |
| 1454 | static void* TrackAllocation(void* ptr, size_t size, int sizeIdx) { |
| 1455 | TAllocHeader* p = (TAllocHeader*)ptr; |
no test coverage detected