summaryrefslogtreecommitdiffstats
path: root/Include/internal
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2024-11-08 12:23:50 (GMT)
committerGitHub <noreply@github.com>2024-11-08 12:23:50 (GMT)
commit061e50f196373d920c3eaa3718b9d0553914e006 (patch)
tree8121c12d8d17ccdd0b3a33dd7f3c93fb725f04df /Include/internal
parentee0746af7d7cfc6cc25441726034e4fea4bcf7e5 (diff)
downloadcpython-061e50f196373d920c3eaa3718b9d0553914e006.zip
cpython-061e50f196373d920c3eaa3718b9d0553914e006.tar.gz
cpython-061e50f196373d920c3eaa3718b9d0553914e006.tar.bz2
gh-122943: Add the varpos parameter in _PyArg_UnpackKeywords (GH-126564)
Remove _PyArg_UnpackKeywordsWithVararg. Add comments for integer arguments of _PyArg_UnpackKeywords.
Diffstat (limited to 'Include/internal')
-rw-r--r--Include/internal/pycore_modsupport.h15
1 files changed, 5 insertions, 10 deletions
diff --git a/Include/internal/pycore_modsupport.h b/Include/internal/pycore_modsupport.h
index 250106a..c661f1d 100644
--- a/Include/internal/pycore_modsupport.h
+++ b/Include/internal/pycore_modsupport.h
@@ -76,7 +76,7 @@ PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords(
...);
// Export for 'math' shared extension
-PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsEx(
+PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywords(
PyObject *const *args,
Py_ssize_t nargs,
PyObject *kwargs,
@@ -87,17 +87,12 @@ PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsEx(
int minkw,
int varpos,
PyObject **buf);
-#define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \
+#define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, varpos, buf) \
(((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \
- (minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? \
+ (minpos) <= (nargs) && ((varpos) || (nargs) <= (maxpos)) && (args) != NULL) ? \
(args) : \
- _PyArg_UnpackKeywordsEx((args), (nargs), (kwargs), (kwnames), (parser), \
- (minpos), (maxpos), (minkw), 0, (buf)))
-#define _PyArg_UnpackKeywordsWithVararg(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \
- (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \
- (minpos) <= (nargs) && (args) != NULL) ? (args) : \
- _PyArg_UnpackKeywordsEx((args), (nargs), (kwargs), (kwnames), (parser), \
- (minpos), (maxpos), (minkw), 1, (buf)))
+ _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \
+ (minpos), (maxpos), (minkw), (varpos), (buf)))
#ifdef __cplusplus
}