diff options
| author | Vitaly Stoyan <[email protected]> | 2024-01-31 14:00:51 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-01-31 14:00:51 +0300 |
| commit | 264201fd2cfddd564dcca3daae0c5b744c4aab51 (patch) | |
| tree | cac88b2d17852c4a38ec22c46f30c440e696de14 | |
| parent | b8034cddecac017a620e570b43377007a5de75cf (diff) | |
YQL-17706 fixed deallocation size (#1449)
* init
* pfree
| -rw-r--r-- | ydb/library/yql/minikql/mkql_alloc.cpp | 3 | ||||
| -rw-r--r-- | ydb/library/yql/parser/pg_wrapper/comp_factory.cpp | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/ydb/library/yql/minikql/mkql_alloc.cpp b/ydb/library/yql/minikql/mkql_alloc.cpp index 2ee6034cb96..fc2ae88240f 100644 --- a/ydb/library/yql/minikql/mkql_alloc.cpp +++ b/ydb/library/yql/minikql/mkql_alloc.cpp @@ -37,7 +37,8 @@ void TAllocState::CleanupPAllocList(TListEntry* root) { for (auto curr = root->Right; curr != root; ) { auto next = curr->Right; auto size = ((TMkqlPAllocHeader*)curr)->Size; - MKQLFreeWithSize(curr, size, EMemorySubPool::Default); // may free items from OffloadedBlocksRoot + auto fullSize = size + sizeof(TMkqlPAllocHeader); + MKQLFreeWithSize(curr, fullSize, EMemorySubPool::Default); // may free items from OffloadedBlocksRoot curr = next; } diff --git a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp index 4dd8d5e7e41..930a9ed9e76 100644 --- a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp +++ b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp @@ -127,7 +127,8 @@ void MkqlAllocSetFree(MemoryContext context, void* pointer) { auto header = ((TMkqlPAllocHeader*)pointer) - 1; // remove this block from list header->U.Entry.Unlink(); - MKQLFreeWithSize(header, header->Size, EMemorySubPool::Default); + auto fullSize = header->Size + sizeof(TMkqlPAllocHeader); + MKQLFreeWithSize(header, fullSize, EMemorySubPool::Default); } } |
