]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-95417: Quick fix for "ULONG_PTR differs in levels of indirection from void *"...
authorOleg Iarygin <oleg@arhadthedev.net>
Mon, 1 Aug 2022 16:30:15 +0000 (19:30 +0300)
committerGitHub <noreply@github.com>
Mon, 1 Aug 2022 16:30:15 +0000 (17:30 +0100)
Modules/clinic/overlapped.c.h
Modules/overlapped.c

index 721b38c75ceef32e504384b67795bebc6caee7c7..1c216633eb95f005f9f6ebe709ccf8ab9c63dcf0 100644 (file)
@@ -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 @@ exit:
 
     return return_value;
 }
-/*[clinic end generated code: output=d90cda84e49a7c23 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=edd05b7a6c9c3aac input=a9049054013a1b77]*/
index 0cec9eedc87f0988be65afecc77da6e93109e2c6..369b1beae84e3f00103de8ee9a34a69e8bfc300a 100644 (file)
@@ -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