[Python-checkins] gh-95417: Quick fix for "ULONG_PTR differs in levels of indirection from void *" (GH-95538)
zooba
webhook-mailer at python.org
Mon Aug 1 12:30:20 EDT 2022
https://github.com/python/cpython/commit/858c9a58bf56cefc792bf0eb1ba22984b7b2d150
commit: 858c9a58bf56cefc792bf0eb1ba22984b7b2d150
branch: main
author: Oleg Iarygin <oleg at arhadthedev.net>
committer: zooba <steve.dower at microsoft.com>
date: 2022-08-01T17:30:15+01:00
summary:
gh-95417: Quick fix for "ULONG_PTR differs in levels of indirection from void *" (GH-95538)
files:
M Modules/clinic/overlapped.c.h
M Modules/overlapped.c
diff --git a/Modules/clinic/overlapped.c.h b/Modules/clinic/overlapped.c.h
index 721b38c75ceef..1c216633eb95f 100644
--- a/Modules/clinic/overlapped.c.h
+++ b/Modules/clinic/overlapped.c.h
@@ -37,7 +37,7 @@ _overlapped_CreateIoCompletionPort(PyObject *module, PyObject *const *args, Py_s
if (!ExistingCompletionPort && PyErr_Occurred()) {
goto exit;
}
- CompletionKey = PyLong_AsVoidPtr(args[2]);
+ CompletionKey = (uintptr_t)PyLong_AsVoidPtr(args[2]);
if (!CompletionKey && PyErr_Occurred()) {
goto exit;
}
@@ -124,7 +124,7 @@ _overlapped_PostQueuedCompletionStatus(PyObject *module, PyObject *const *args,
if (!_PyLong_UnsignedLong_Converter(args[1], &NumberOfBytes)) {
goto exit;
}
- CompletionKey = PyLong_AsVoidPtr(args[2]);
+ CompletionKey = (uintptr_t)PyLong_AsVoidPtr(args[2]);
if (!CompletionKey && PyErr_Occurred()) {
goto exit;
}
@@ -1225,4 +1225,4 @@ _overlapped_Overlapped_WSARecvFromInto(OverlappedObject *self, PyObject *const *
return return_value;
}
-/*[clinic end generated code: output=d90cda84e49a7c23 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=edd05b7a6c9c3aac input=a9049054013a1b77]*/
diff --git a/Modules/overlapped.c b/Modules/overlapped.c
index 0cec9eedc87f0..369b1beae84e3 100644
--- a/Modules/overlapped.c
+++ b/Modules/overlapped.c
@@ -52,13 +52,21 @@ class HANDLE_converter(pointer_converter):
class ULONG_PTR_converter(pointer_converter):
type = 'ULONG_PTR'
+ def parse_arg(self, argname, displayname):
+ return """
+ {paramname} = (uintptr_t)PyLong_AsVoidPtr({argname});
+ if (!{paramname} && PyErr_Occurred()) {{{{
+ goto exit;
+ }}}}
+ """.format(argname=argname, paramname=self.parser_name)
+
class DWORD_converter(unsigned_long_converter):
type = 'DWORD'
class BOOL_converter(int_converter):
type = 'BOOL'
[python start generated code]*/
-/*[python end generated code: output=da39a3ee5e6b4b0d input=a19133a9e14fae9c]*/
+/*[python end generated code: output=da39a3ee5e6b4b0d input=8a07ea3018f4cec8]*/
/*[clinic input]
module _overlapped
More information about the Python-checkins
mailing list