Workaround for header construction order

This commit is contained in:
Thomas Krijnen
2026-06-12 11:41:11 +02:00
parent 4d22a3fdb9
commit dcebf23af8
+2 -8
View File
@@ -95,14 +95,8 @@ IfcParse::IfcSpfHeader::IfcSpfHeader(IfcParse::IfcFile* file, Logger& logger)
return nullptr; return nullptr;
}, file_->storage_); }, file_->storage_);
if (storage_ == nullptr) { // IfcFile constructs _header before it emplaces the selected storage backend.
file_description_ = Header_section_schema::get_schema().instantiate(&Header_section_schema::file_description::Class(), IfcEntityInstanceData(rocks_db_attribute_storage{}))->as<Header_section_schema::file_description>(); // Keep header entities lazy so the accessors below allocate against the final storage.
file_description_->file_ = file_;
file_name_ = Header_section_schema::get_schema().instantiate(&Header_section_schema::file_name::Class(), IfcEntityInstanceData(rocks_db_attribute_storage{}))->as<Header_section_schema::file_name>();
file_name_->file_ = file_;
file_schema_ = Header_section_schema::get_schema().instantiate(&Header_section_schema::file_schema::Class(), IfcEntityInstanceData(rocks_db_attribute_storage{}))->as<Header_section_schema::file_schema>();
file_schema_->file_ = file_;
}
} }
} }