936 B
936 B
PoolAllocator::Contains
判断指针是否落在当前池的地址范围内。
bool Contains(void* ptr) const;
行为说明
当前实现只做范围判断:
- 如果
ptr == nullptr或m_memory == nullptr,返回false。 - 计算
ptr相对池起始地址的偏移。 - 用构造阶段的实际 block 步长乘以
m_totalBlocks,得到整个池的地址范围。 - 只要偏移仍在这个范围内,就返回
true。
这意味着:
- 它是范围检查,不是“当前已分配块”的检查。
- 指向某个 block 中间位置的指针也可能返回
true。 - 已经释放回池的指针仍可能返回
true。 - 它不验证指针是否落在 block 边界上。
参数
ptr- 待检测指针。
返回值
bool- 指针位于池地址范围内时返回true;否则返回false。