Prevent double free in iterator with output=native

This commit is contained in:
Thomas Krijnen
2025-04-17 15:26:18 +02:00
parent 360e08f268
commit 030dc6460a
+7 -2
View File
@@ -664,8 +664,10 @@ namespace IfcGeom {
const IfcUtil::IfcBaseClass* next() {
using std::chrono::high_resolution_clock;
if (*native_task_result_iterator_ != *task_result_iterator_) {
delete* native_task_result_iterator_;
}
delete *task_result_iterator_;
delete *native_task_result_iterator_;
if (num_threads_ != 1) {
if (!wait_for_element()) {
@@ -896,8 +898,11 @@ namespace IfcGeom {
if (task_result_ptr_initialized) {
while (task_result_iterator_ != --all_processed_elements_.end()) {
if (*native_task_result_iterator_ != *task_result_iterator_) {
delete* native_task_result_iterator_;
}
delete *task_result_iterator_++;
delete *native_task_result_iterator_++;
native_task_result_iterator_++;
}
}