From 2d7a90bd2b312c2215009876a079428dc6aeee3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Mart=C3=ADnez=20de=20la=20Rosa?= <36189169+christt105@users.noreply.github.com> Date: Mon, 11 Apr 2022 17:13:22 +0200 Subject: [PATCH] [IfcConvert] Fix crash when IfcWorkCalendar does not contain IfcWorkTime --- src/serializers/schema_dependent/XmlSerializer.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/serializers/schema_dependent/XmlSerializer.cpp b/src/serializers/schema_dependent/XmlSerializer.cpp index d02a97d8d7..28ea71f832 100644 --- a/src/serializers/schema_dependent/XmlSerializer.cpp +++ b/src/serializers/schema_dependent/XmlSerializer.cpp @@ -626,11 +626,13 @@ void MAKE_TYPE_NAME(XmlSerializer)::finalize() { ptree* ncalendar = format_entity_instance(calendar, calendars); if (ncalendar) { - auto working_times = calendar->WorkingTimes().value(); - for(auto it2 = working_times->begin(); it2 != working_times->end(); ++it2) - { - auto working_time = *it2; - format_entity_instance(working_time, *ncalendar); + IfcSchema::IfcWorkTime::list::ptr working_times = calendar->WorkingTimes().value_or(nullptr); + if (working_times != nullptr) { + for (IfcSchema::IfcWorkTime::list::it it2 = working_times->begin(); it2 != working_times->end(); ++it2) + { + IfcSchema::IfcWorkTime* working_time = *it2; + format_entity_instance(working_time, *ncalendar); + } } } }