From 8c719418d065ff5de110dfea95d113b9769b74c1 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Thu, 19 Mar 2026 01:15:45 +0800 Subject: [PATCH] Add missing destructor documentation for PoolAllocator and ProxyAllocator - Created docs/api/memory/pool-allocator/~pool-allocator.md documenting the destructor - Created docs/api/memory/proxy-allocator/~proxy-allocator.md documenting the destructor - Added ~ProxyAllocator entry to proxy-allocator.md overview table - Verified link validation passes (no broken references) --- .../memory/pool-allocator/~pool-allocator.md | 31 ++++++++++++++++ .../proxy-allocator/~proxy-allocator.md | 37 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 docs/api/memory/pool-allocator/~pool-allocator.md create mode 100644 docs/api/memory/proxy-allocator/~proxy-allocator.md diff --git a/docs/api/memory/pool-allocator/~pool-allocator.md b/docs/api/memory/pool-allocator/~pool-allocator.md new file mode 100644 index 00000000..bec36364 --- /dev/null +++ b/docs/api/memory/pool-allocator/~pool-allocator.md @@ -0,0 +1,31 @@ +# PoolAllocator::~PoolAllocator + +```cpp +~PoolAllocator() override; +``` + +销毁内存池分配器,释放预分配的所有内存块。析构函数调用 `std::free` 释放整个内存池,不再需要单独释放每个块。 + +**参数:** 无 + +**返回:** 无 + +**注意:** 析构函数释放整个内存池,包括所有已分配和空闲的块。调用析构函数后,池中所有已分配出去的块也随之失效,使用这些块指针将导致未定义行为。 + +**示例:** + +```cpp +#include + +{ + PoolAllocator pool(sizeof(int), 1000); + void* block = pool.Allocate(); + // ... 使用内存块 + + pool.Free(block); // 可选:显式释放(析构时会自动释放) +} // 超出作用域时自动释放整个内存池 +``` + +## 相关文档 + +- [PoolAllocator 总览](pool-allocator.md) - 返回类总览 diff --git a/docs/api/memory/proxy-allocator/~proxy-allocator.md b/docs/api/memory/proxy-allocator/~proxy-allocator.md new file mode 100644 index 00000000..68846e76 --- /dev/null +++ b/docs/api/memory/proxy-allocator/~proxy-allocator.md @@ -0,0 +1,37 @@ +# ProxyAllocator::~ProxyAllocator + +```cpp +~ProxyAllocator() override; +``` + +销毁代理分配器。此析构函数不释放底层分配器,只清理代理分配器自身的统计信息(互斥锁等)。底层分配器由创建者负责管理。 + +**参数:** 无 + +**返回:** 无 + +**注意:** 析构函数不释放底层分配器。如果需要释放底层分配器,应先调用 `Shutdown` 或显式销毁底层分配器。 + +**示例:** + +```cpp +#include +#include + +{ + MemoryManager::Get().Initialize(); + IAllocator* sysAlloc = MemoryManager::Get().GetSystemAllocator(); + + auto proxy = MemoryManager::Get().CreateProxyAllocator("TrackedAlloc"); + proxy->Allocate(1024); + + // proxy 超出作用域时自动销毁 + // 底层 sysAlloc 仍有效 + + MemoryManager::Get().Shutdown(); +} +``` + +## 相关文档 + +- [ProxyAllocator 总览](proxy-allocator.md) - 返回类总览