Address segfault #7215 #7185

This commit is contained in:
Thomas Krijnen
2025-10-08 14:17:47 +02:00
parent 4ab2664529
commit e15f222a19
4 changed files with 15 additions and 8 deletions
+5 -6
View File
@@ -189,7 +189,10 @@ namespace IfcParse {
namespace impl {
struct IFC_PARSE_API in_memory_file_storage {
std::vector<IfcUtil::IfcBaseClass*> read_simple_type_instances;
std::vector<std::unique_ptr<IfcUtil::IfcBaseClass>> read_simple_type_instances;
std::vector<std::unique_ptr<IfcUtil::IfcBaseClass>> steal_instances() {
return std::move(read_simple_type_instances);
}
IfcParse::IfcSpfLexer* tokens;
// IfcParse::IfcSpfStream* stream;
@@ -214,14 +217,10 @@ namespace IfcParse {
typedef entity_instance_by_name_t::iterator iterator;
in_memory_file_storage(IfcParse::IfcFile* f = nullptr) : tokens(nullptr), file(f), schema(nullptr) {}
~in_memory_file_storage() {
for (auto* inst : read_simple_type_instances) {
delete inst;
}
}
in_memory_file_storage(const in_memory_file_storage&) = delete;
in_memory_file_storage(const in_memory_file_storage&&) = delete;
class type_iterator : public entities_by_type_t::const_iterator {
public:
using iterator_category = std::forward_iterator_tag;