msvcrt: Use operator_delete to free _Condition_variable queue nodes.

This commit is contained in:
Rémi Bernon 2022-12-02 08:16:30 +01:00 committed by Alexandre Julliard
parent 466f31dce9
commit 996c115217

View file

@ -2656,7 +2656,7 @@ void __thiscall _Condition_variable_dtor(_Condition_variable *this)
cv_queue *next = this->queue->next; cv_queue *next = this->queue->next;
if(!this->queue->expired) if(!this->queue->expired)
ERR("there's an active wait\n"); ERR("there's an active wait\n");
HeapFree(GetProcessHeap(), 0, this->queue); operator_delete(this->queue);
this->queue = next; this->queue = next;
} }
critical_section_dtor(&this->lock); critical_section_dtor(&this->lock);
@ -2753,7 +2753,7 @@ void __thiscall _Condition_variable_notify_one(_Condition_variable *this)
RtlWakeAddressSingle(&node->next); RtlWakeAddressSingle(&node->next);
return; return;
} else { } else {
HeapFree(GetProcessHeap(), 0, node); operator_delete(node);
} }
} }
} }
@ -2782,7 +2782,7 @@ void __thiscall _Condition_variable_notify_all(_Condition_variable *this)
if(!InterlockedExchange(&ptr->expired, TRUE)) if(!InterlockedExchange(&ptr->expired, TRUE))
RtlWakeAddressSingle(&ptr->next); RtlWakeAddressSingle(&ptr->next);
else else
HeapFree(GetProcessHeap(), 0, ptr); operator_delete(ptr);
ptr = next; ptr = next;
} }
} }