From 490b638e63558013b71dbfba6e47cb9e6d80c911 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Sat, 29 May 2021 00:29:19 +0800 Subject: bpo-42972: Fix GC assertion error in _winapi by untracking Overlapped earlier (GH(26429) --- Modules/_winapi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/_winapi.c b/Modules/_winapi.c index 30fcb4e..2c03462 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -132,6 +132,7 @@ overlapped_dealloc(OverlappedObject *self) DWORD bytes; int err = GetLastError(); + PyObject_GC_UnTrack(self); if (self->pending) { if (check_CancelIoEx() && Py_CancelIoEx(self->handle, &self->overlapped) && @@ -164,7 +165,6 @@ overlapped_dealloc(OverlappedObject *self) CloseHandle(self->overlapped.hEvent); SetLastError(err); - PyObject_GC_UnTrack(self); if (self->write_buffer.obj) PyBuffer_Release(&self->write_buffer); Py_CLEAR(self->read_buffer); -- cgit v0.12