INNER CODE UNIT · C++
p
Xrysnow/LuaSTG-x · frameworks/Classes/MemPoolManager.cpp:91
auto p = std::make_shared<Vector<backend::ProgramState*>>();
for (size_t i = 0; i < ProgramStatePoolBlockSize; ++i)
{
const auto s = new backend::ProgramState(_program);
s->autorelease();
p->pushBack(s);
}
blocks.emplace_back(p);
}
backend::ProgramState* ProgramStatePool::get()
{
check_size();
assert(blocks[idx_b]->size() > idx_a);
return blocks[idx_b]->at(idx_a++);
}
ProgramStatePool::ProgramStatePool(Program* program)