diff --git a/src/ifcparse/storage.h b/src/ifcparse/storage.h index 3e9ce83a8b..06592b8477 100644 --- a/src/ifcparse/storage.h +++ b/src/ifcparse/storage.h @@ -32,6 +32,7 @@ namespace rocksdb { #include #include #include +#include #include #include @@ -250,7 +251,10 @@ namespace ifcopenshell { }; struct parse_context_pool { - std::vector nodes_; + // parse_context::push() stores child handles on the current context after + // requesting a new pool slot. The pool therefore needs stable addresses + // for existing contexts while it grows. + std::deque nodes_; uint32_t used_ = 0; void reset() { used_ = 0; }