Skip to content

Commit a76288a

Browse files
authored
gh-116646, AC: Always use PyObject_AsFileDescriptor() in fildes (#116806)
The fildes converter of Argument Clinic now always call PyObject_AsFileDescriptor(), not only for the limited C API. The _PyLong_FileDescriptor_Converter() converter stays as a fallback when PyObject_AsFileDescriptor() cannot be used.
1 parent 2a54c4b commit a76288a

File tree

4 files changed

+74
-48
lines changed

4 files changed

+74
-48
lines changed

Modules/clinic/posixmodule.c.h

Lines changed: 31 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/clinic/selectmodule.c.h

Lines changed: 19 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/clinic/termios.c.h

Lines changed: 17 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tools/clinic/clinic.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3832,16 +3832,13 @@ def use_converter(self) -> None:
38323832
'_PyLong_FileDescriptor_Converter()')
38333833

38343834
def parse_arg(self, argname: str, displayname: str, *, limited_capi: bool) -> str | None:
3835-
if limited_capi:
3836-
return self.format_code("""
3837-
{paramname} = PyObject_AsFileDescriptor({argname});
3838-
if ({paramname} < 0) {{{{
3839-
goto exit;
3840-
}}}}
3841-
""",
3842-
argname=argname)
3843-
else:
3844-
return super().parse_arg(argname, displayname, limited_capi=limited_capi)
3835+
return self.format_code("""
3836+
{paramname} = PyObject_AsFileDescriptor({argname});
3837+
if ({paramname} < 0) {{{{
3838+
goto exit;
3839+
}}}}
3840+
""",
3841+
argname=argname)
38453842

38463843

38473844
class float_converter(CConverter):

0 commit comments

Comments
 (0)