From 693444d4d2c9bd4e6aa32f6930c3576046852275 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Mon, 13 Nov 2017 14:58:02 +0100 Subject: [PATCH] Fix traversal --- src/ifcparse/IfcParse.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 1706f94e6b..ec1bef07c3 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1085,7 +1085,14 @@ void IfcFile::traverse(IfcUtil::IfcBaseClass* instance, std::set= max_level && max_level > 0) return; - auto attributes = instance->declaration().as_entity()->all_attributes(); + auto entity = instance->declaration().as_entity(); + if (!entity) { + // This is a simple type instance, don't traverse attributes. + return; + } + + auto attributes = entity->all_attributes(); + for (unsigned i = 0; i < attributes.size(); ++i) { Argument* arg = instance->data().getArgument(i);