From 2dd002bcd8248edcac4b486b71918fe48b534fc9 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 13 Jan 2026 08:44:44 +0100 Subject: [PATCH] Properly constuct type decl instances --- src/ifcparse/IfcFile.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ifcparse/IfcFile.cpp b/src/ifcparse/IfcFile.cpp index d55906e31a..80582167d7 100644 --- a/src/ifcparse/IfcFile.cpp +++ b/src/ifcparse/IfcFile.cpp @@ -782,9 +782,14 @@ express::Base IfcParse::impl::in_memory_file_storage::create(const IfcParse::dec } else { throw std::runtime_error("Requires and entity or type declaration"); } - auto ptr = byid_.insert({instance_name, std::make_shared(file, decl, instance_name, decl->as_entity() ? in_memory_attribute_storage(decl->as_entity()->attribute_count()) : in_memory_attribute_storage(1))}).first; - express::Base inst(ptr->second); - + auto data = std::make_shared(file, decl, instance_name, decl->as_entity() ? in_memory_attribute_storage(decl->as_entity()->attribute_count()) : in_memory_attribute_storage(1)); + if (instance_name) { + byid_.insert({instance_name, data}); + } else { + tbyid_.insert({data->identity(), data}); + } + + express::Base inst(data); add_type_ref(inst); return inst;