mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Prevent double free in iterator with output=native
This commit is contained in:
@@ -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_++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user