diff options
author | Steve Dower <steve.dower@python.org> | 2019-12-09 19:05:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-09 19:05:39 (GMT) |
commit | b8cbe74c3498c617f0e73fd0cdc5c07f2c532092 (patch) | |
tree | ab78352644177312c0902ea36122c324b510919b | |
parent | ac229116a34a679511c20bfeca167cc6a9df9807 (diff) | |
download | cpython-b8cbe74c3498c617f0e73fd0cdc5c07f2c532092.zip cpython-b8cbe74c3498c617f0e73fd0cdc5c07f2c532092.tar.gz cpython-b8cbe74c3498c617f0e73fd0cdc5c07f2c532092.tar.bz2 |
bpo-39008: Require Py_ssize_t for PySys_Audit formats rather than raise a deprecation warning (GH-17540)
-rw-r--r-- | Doc/c-api/sys.rst | 8 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Core and Builtins/2019-12-09-10-38-51.bpo-39008.Rrp6f1.rst | 3 | ||||
-rw-r--r-- | Python/sysmodule.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Doc/c-api/sys.rst b/Doc/c-api/sys.rst index eccb8a6..c851ff6 100644 --- a/Doc/c-api/sys.rst +++ b/Doc/c-api/sys.rst @@ -320,10 +320,18 @@ accessible to C code. They all work with the current interpreter thread's arguments to this function will be consumed, using it may cause reference leaks.) + Note that ``#`` format characters should always be treated as + ``Py_ssize_t``, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined. + :func:`sys.audit` performs the same function from Python code. .. versionadded:: 3.8 + .. versionchanged:: 3.8.2 + + Require ``Py_ssize_t`` for ``#`` format characters. Previously, an + unavoidable deprecation warning was raised. + .. c:function:: int PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData) diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-09-10-38-51.bpo-39008.Rrp6f1.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-09-10-38-51.bpo-39008.Rrp6f1.rst new file mode 100644 index 0000000..35237ce --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-09-10-38-51.bpo-39008.Rrp6f1.rst @@ -0,0 +1,3 @@ +:c:func:`PySys_Audit` now requires ``Py_ssize_t`` to be used for size +arguments in the format string, regardless of whethen ``PY_SSIZE_T_CLEAN`` +was defined at include time. diff --git a/Python/sysmodule.c b/Python/sysmodule.c index b6bdf51..9f866a2 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -181,7 +181,7 @@ PySys_Audit(const char *event, const char *argFormat, ...) if (argFormat && argFormat[0]) { va_list args; va_start(args, argFormat); - eventArgs = Py_VaBuildValue(argFormat, args); + eventArgs = _Py_VaBuildValue_SizeT(argFormat, args); va_end(args); if (eventArgs && !PyTuple_Check(eventArgs)) { PyObject *argTuple = PyTuple_Pack(1, eventArgs); |