8000 Cleanup additions/fixes · python/cpython@2395598 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2395598

Browse files
committed
Cleanup additions/fixes
1 parent 113b93f commit 2395598

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Modules/overlapped.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -674,9 +674,9 @@ Overlapped_clear(OverlappedObject *self)
674674
break;
675675
}
676676
case TYPE_READ_FROM_INTO: {
677-
if (self->read_from.result) {
677+
if (self->read_from_into.result) {
678678
// We've received a message, free the result tuple.
679-
Py_CLEAR(self->read_from.result);
679+
Py_CLEAR(self->read_from_into.result);
680680
}
681681
if (self->read_from_into.user_buffer.obj) {
682682
PyBuffer_Release(&self->read_from_into.user_buffer);
@@ -887,6 +887,11 @@ _overlapped_Overlapped_getresult_impl(OverlappedObject *self, BOOL wait)
887887
{
888888
break;
889889
}
890+
else if (self->type == TYPE_READ_FROM_INTO &&
891+
self->read_from_into.result != NULL)
892+
{
893+
break;
894+
}
890895
/* fall through */
891896
default:
892897
return SetFromWindowsErr(err);
@@ -1663,6 +1668,13 @@ Overlapped_traverse(OverlappedObject *self, visitproc visit, void *arg)
16631668
case TYPE_READ_FROM:
16641669
Py_VISIT(self->read_from.result);
16651670
Py_VISIT(self->read_from.allocated_buffer);
1671+
break;
1672+
case TYPE_READ_FROM_INTO:
1673+
Py_VISIT(self->read_from_into.result);
1674+
if (self->read_from_into.user_buffer.obj) {
1675+
Py_VISIT(&self->read_from_into.user_buffer.obj);
1676+
}
1677+
break;
16661678
}
16671679
return 0;
16681680
}

0 commit comments

Comments
 (0)
0