gh-95417: Quick fix for "ULONG_PTR differs in levels of indirection from void *" (GH-95538)

This commit is contained in:
Oleg Iarygin 2022-08-01 19:30:15 +03:00 committed by GitHub
parent c0cd790219
commit 858c9a58bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View 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]*/

View 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