diff --git a/dtool/src/dtoolbase/deletedBufferChain.cxx b/dtool/src/dtoolbase/deletedBufferChain.cxx index f4d269608b..13df8a8b71 100644 --- a/dtool/src/dtoolbase/deletedBufferChain.cxx +++ b/dtool/src/dtoolbase/deletedBufferChain.cxx @@ -167,8 +167,9 @@ get_deleted_chain(size_t buffer_size) { static MutexImpl lock; lock.lock(); - static std::set deleted_chains; - DeletedBufferChain *result = (DeletedBufferChain *)&*deleted_chains.insert(DeletedBufferChain(buffer_size)).first; + alignas(std::set) static char storage[sizeof(std::set)]; + static auto *deleted_chains = new (storage) std::set; + DeletedBufferChain *result = (DeletedBufferChain *)&*deleted_chains->insert(DeletedBufferChain(buffer_size)).first; lock.unlock(); return result; }