Skip to content

Commit b48b71a

Browse files
committed
fixup
1 parent 80eefbf commit b48b71a

File tree

8 files changed

+54
-143
lines changed

8 files changed

+54
-143
lines changed

Include/abstract.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -193,15 +193,6 @@ PyAPI_FUNC(PyObject *) PyObject_CallMethod(PyObject *obj,
193193
const char *name,
194194
const char *format, ...);
195195

196-
PyAPI_FUNC(PyObject *) _PyObject_CallFunction_SizeT(PyObject *callable,
197-
const char *format,
198-
...);
199-
200-
PyAPI_FUNC(PyObject *) _PyObject_CallMethod_SizeT(PyObject *obj,
201-
const char *name,
202-
const char *format,
203-
...);
204-
205196
/* Call a callable Python object 'callable' with a variable number of C
206197
arguments. The C arguments are provided as PyObject* values, terminated
207198
by a NULL.

Include/cpython/abstract.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
/* === Object Protocol ================================================== */
66

7-
#define _PyObject_CallMethodId _PyObject_CallMethodId_SizeT
8-
97
/* Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)
108
format to a Python dictionary ("kwargs" dict).
119
@@ -111,11 +109,6 @@ PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
111109
_Py_Identifier *name,
112110
const char *format, ...);
113111

114-
PyAPI_FUNC(PyObject *) _PyObject_CallMethodId_SizeT(PyObject *obj,
115-
_Py_Identifier *name,
116-
const char *format,
117-
...);
118-
119112
PyAPI_FUNC(PyObject *) _PyObject_CallMethodIdObjArgs(
120113
PyObject *obj,
121114
_Py_Identifier *name,

Include/cpython/modsupport.h

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,19 @@
22
# error "this header file must not be included directly"
33
#endif
44

5-
/* Each functions treats #-specifier to mean Py_ssize_t
6-
* regardless PY_SSIZE_T_CLEAN */
7-
#define _Py_VaBuildStack _Py_VaBuildStack_SizeT
5+
PyAPI_FUNC(PyObject **) _Py_VaBuildStack(
6+
PyObject **small_stack,
7+
Py_ssize_t small_stack_len,
8+
const char *format,
9+
va_list va,
10+
Py_ssize_t *p_nargs);
11+
12+
PyAPI_FUNC(PyObject **) _Py_VaBuildStack_SizeT(
13+
PyObject **small_stack,
14+
Py_ssize_t small_stack_len,
15+
const char *format,
16+
va_list va,
17+
Py_ssize_t *p_nargs);
818

919
PyAPI_FUNC(int) _PyArg_UnpackStack(
1020
PyObject *const *args,
@@ -33,13 +43,6 @@ PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t,
3343
((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \
3444
|| _PyArg_CheckPositional((funcname), (nargs), (min), (max)))
3545

36-
PyAPI_FUNC(PyObject **) _Py_VaBuildStack(
37-
PyObject **small_stack,
38-
Py_ssize_t small_stack_len,
39-
const char *format,
40-
va_list va,
41-
Py_ssize_t *p_nargs);
42-
4346
typedef struct _PyArg_Parser {
4447
int initialized;
4548
const char *format;
@@ -53,11 +56,6 @@ typedef struct _PyArg_Parser {
5356
struct _PyArg_Parser *next;
5457
} _PyArg_Parser;
5558

56-
#define _PyArg_ParseTupleAndKeywordsFast _PyArg_ParseTupleAndKeywordsFast_SizeT
57-
#define _PyArg_ParseStack _PyArg_ParseStack_SizeT
58-
#define _PyArg_ParseStackAndKeywords _PyArg_ParseStackAndKeywords_SizeT
59-
#define _PyArg_VaParseTupleAndKeywordsFast _PyArg_VaParseTupleAndKeywordsFast_SizeT
60-
6159
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
6260
struct _PyArg_Parser *, ...);
6361
PyAPI_FUNC(int) _PyArg_ParseStack(

Include/modsupport.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *,
3333
PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *);
3434
PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...);
3535
PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...);
36-
PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...);
37-
38-
3936
PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list);
4037

4138
// Add an attribute with name 'name' and value 'obj' to the module 'mod.

Objects/call.c

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,9 @@ _PyObject_CallFunctionVa(PyThreadState *tstate, PyObject *callable,
572572
return result;
573573
}
574574

575-
576-
PyObject *
575+
// Export for the stable ABI
576+
#undef PyObject_CallFunction
577+
PyAPI_FUNC(PyObject *)
577578
PyObject_CallFunction(PyObject *callable, const char *format, ...)
578579
{
579580
va_list va;
@@ -634,7 +635,9 @@ callmethod(PyThreadState *tstate, PyObject* callable, const char *format, va_lis
634635
return _PyObject_CallFunctionVa(tstate, callable, format, va, is_size_t);
635636
}
636637

637-
PyObject *
638+
// Export for the stable ABI
639+
#undef PyObject_CallMethod
640+
PyAPI_FUNC(PyObject *)
638641
PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...)
639642
{
640643
PyThreadState *tstate = _PyThreadState_GET();
@@ -724,7 +727,7 @@ _PyObject_CallMethodId(PyObject *obj, _Py_Identifier *name,
724727

725728
va_list va;
726729
va_start(va, format);
727-
PyObject *retval = callmethod(tstate, callable, format, va, 0);
730+
PyObject *retval = callmethod(tstate, callable, format, va, 1);
728731
va_end(va);
729732

730733
Py_DECREF(callable);
@@ -767,30 +770,6 @@ _PyObject_CallMethod_SizeT(PyObject *obj, const char *name,
767770
}
768771

769772

770-
PyObject *
771-
_PyObject_CallMethodId_SizeT(PyObject *obj, _Py_Identifier *name,
772-
const char *format, ...)
773-
{
774-
PyThreadState *tstate = _PyThreadState_GET();
775-
if (obj == NULL || name == NULL) {
776-
return null_error(tstate);
777-
}
778-
779-
PyObject *callable = _PyObject_GetAttrId(obj, name);
780-
if (callable == NULL) {
781-
return NULL;
782-
}
783-
784-
va_list va;
785-
va_start(va, format);
786-
PyObject *retval = callmethod(tstate, callable, format, va, 1);
787-
va_end(va);
788-
789-
Py_DECREF(callable);
790-
return retval;
791-
}
792-
793-
794773
/* --- Call with "..." arguments ---------------------------------- */
795774

796775
static PyObject *

Python/getargs.c

Lines changed: 27 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -12,40 +12,38 @@
1212
#ifdef __cplusplus
1313
extern "C" {
1414
#endif
15-
int PyArg_Parse(PyObject *, const char *, ...);
16-
int PyArg_ParseTuple(PyObject *, const char *, ...);
17-
int PyArg_VaParse(PyObject *, const char *, va_list);
18-
19-
int PyArg_ParseTupleAndKeywords(PyObject *, PyObject *,
20-
const char *, char **, ...);
21-
int PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *,
22-
const char *, char **, va_list);
23-
24-
int _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
25-
struct _PyArg_Parser *, ...);
26-
int _PyArg_VaParseTupleAndKeywordsFast(PyObject *, PyObject *,
27-
struct _PyArg_Parser *, va_list);
15+
// Remove alias to _SizeT version in modsupport.h
16+
#undef PyArg_Parse
17+
#undef PyArg_ParseTuple
18+
#undef PyArg_ParseTupleAndKeywords
19+
#undef PyArg_VaParse
20+
#undef PyArg_VaParseTupleAndKeywords
21+
PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...);
22+
PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...);
23+
PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list);
24+
25+
PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(
26+
PyObject *, PyObject *, const char *, char **, ...);
27+
PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(
28+
PyObject *, PyObject *, const char *, char **, va_list);
29+
30+
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(
31+
PyObject *, PyObject *, struct _PyArg_Parser *, ...);
32+
PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywordsFast(
33+
PyObject *, PyObject *, struct _PyArg_Parser *, va_list);
2834

2935
#ifdef HAVE_DECLSPEC_DLL
3036
/* Export functions */
3137
PyAPI_FUNC(int) _PyArg_Parse_SizeT(PyObject *, const char *, ...);
3238
PyAPI_FUNC(int) _PyArg_ParseStack_SizeT(PyObject *const *args, Py_ssize_t nargs,
3339
const char *format, ...);
34-
PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs,
35-
PyObject *kwnames,
36-
struct _PyArg_Parser *parser, ...);
3740
PyAPI_FUNC(int) _PyArg_ParseTuple_SizeT(PyObject *, const char *, ...);
3841
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywords_SizeT(PyObject *, PyObject *,
3942
const char *, char **, ...);
4043
PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...);
4144
PyAPI_FUNC(int) _PyArg_VaParse_SizeT(PyObject *, const char *, va_list);
4245
PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *, PyObject *,
4346
const char *, char **, va_list);
44-
45-
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *, PyObject *,
46-
struct _PyArg_Parser *, ...);
47-
PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *, PyObject *,
48-
struct _PyArg_Parser *, va_list);
4947
#endif
5048

5149
#define FLAG_COMPAT 1
@@ -95,6 +93,7 @@ static int vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,
9593
va_list *p_va, int flags);
9694
static const char *skipitem(const char **, va_list *, int);
9795

96+
#undef PyArg_Parse
9897
int
9998
PyArg_Parse(PyObject *args, const char *format, ...)
10099
{
@@ -120,6 +119,7 @@ _PyArg_Parse_SizeT(PyObject *args, const char *format, ...)
120119
}
121120

122121

122+
#undef PyArg_ParseTuple
123123
int
124124
PyArg_ParseTuple(PyObject *args, const char *format, ...)
125125
{
@@ -151,25 +151,13 @@ _PyArg_ParseStack(PyObject *const *args, Py_ssize_t nargs, const char *format, .
151151
int retval;
152152
va_list va;
153153

154-
va_start(va, format);
155-
retval = vgetargs1_impl(NULL, args, nargs, format, &va, 0);
156-
va_end(va);
157-
return retval;
158-
}
159-
160-
PyAPI_FUNC(int)
161-
_PyArg_ParseStack_SizeT(PyObject *const *args, Py_ssize_t nargs, const char *format, ...)
162-
{
163-
int retval;
164-
va_list va;
165-
166154
va_start(va, format);
167155
retval = vgetargs1_impl(NULL, args, nargs, format, &va, FLAG_SIZE_T);
168156
va_end(va);
169157
return retval;
170158
}
171159

172-
160+
#undef PyArg_VaParse
173161
int
174162
PyArg_VaParse(PyObject *args, const char *format, va_list va)
175163
{
@@ -1322,6 +1310,7 @@ getbuffer(PyObject *arg, Py_buffer *view, const char **errmsg)
13221310
/* Support for keyword arguments donated by
13231311
Geoff Philbrick <[email protected]> */
13241312

1313+
#undef PyArg_ParseTupleAndKeywords /* Remove alias to _SizeT version */
13251314
/* Return false (0) for error, else true. */
13261315
int
13271316
PyArg_ParseTupleAndKeywords(PyObject *args,
@@ -1372,7 +1361,7 @@ _PyArg_ParseTupleAndKeywords_SizeT(PyObject *args,
13721361
return retval;
13731362
}
13741363

1375-
1364+
#undef PyArg_VaParseTupleAndKeywords /* Remove alias to _SizeT version */
13761365
int
13771366
PyArg_VaParseTupleAndKeywords(PyObject *args,
13781367
PyObject *keywords,
@@ -1424,60 +1413,33 @@ _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args,
14241413
return retval;
14251414
}
14261415

1427-
PyAPI_FUNC(int)
1416+
int
14281417
_PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
14291418
struct _PyArg_Parser *parser, ...)
14301419
{
14311420
int retval;
14321421
va_list va;
14331422

1434-
va_start(va, parser);
1435-
retval = vgetargskeywordsfast(args, keywords, parser, &va, 0);
1436-
va_end(va);
1437-
return retval;
1438-
}
1439-
1440-
PyAPI_FUNC(int)
1441-
_PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
1442-
struct _PyArg_Parser *parser, ...)
1443-
{
1444-
int retval;
1445-
va_list va;
1446-
14471423
va_start(va, parser);
14481424
retval = vgetargskeywordsfast(args, keywords, parser, &va, FLAG_SIZE_T);
14491425
va_end(va);
14501426
return retval;
14511427
}
14521428

1453-
PyAPI_FUNC(int)
1429+
int
14541430
_PyArg_ParseStackAndKeywords(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames,
14551431
struct _PyArg_Parser *parser, ...)
14561432
{
14571433
int retval;
14581434
va_list va;
14591435

1460-
va_start(va, parser);
1461-
retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, 0);
1462-
va_end(va);
1463-
return retval;
1464-
}
1465-
1466-
PyAPI_FUNC(int)
1467-
_PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames,
1468-
struct _PyArg_Parser *parser, ...)
1469-
{
1470-
int retval;
1471-
va_list va;
1472-
14731436
va_start(va, parser);
14741437
retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, FLAG_SIZE_T);
14751438
va_end(va);
14761439
return retval;
14771440
}
14781441

1479-
1480-
PyAPI_FUNC(int)
1442+
int
14811443
_PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
14821444
struct _PyArg_Parser *parser, va_list va)
14831445
{
@@ -1486,20 +1448,6 @@ _PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
14861448

14871449
va_copy(lva, va);
14881450

1489-
retval = vgetargskeywordsfast(args, keywords, parser, &lva, 0);
1490-
va_end(lva);
1491-
return retval;
1492-
}
1493-
1494-
PyAPI_FUNC(int)
1495-
_PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
1496-
struct _PyArg_Parser *parser, va_list va)
1497-
{
1498-
int retval;
1499-
va_list lva;
1500-
1501-
va_copy(lva, va);
1502-
15031451
retval = vgetargskeywordsfast(args, keywords, parser, &lva, FLAG_SIZE_T);
15041452
va_end(lva);
15051453
return retval;

Python/modsupport.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
#include "pycore_abstract.h" // _PyIndex_Check()
66
#include "pycore_object.h" // _PyType_IsReady()
77

8+
// Remove alias to _SizeT version in modsupport.h
9+
#undef Py_BuildValue
10+
#undef Py_VaBuildValue
11+
PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...);
12+
PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list);
13+
814
#define FLAG_SIZE_T 1
915
typedef double va_double;
1016

@@ -507,7 +513,6 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
507513
#undef ERROR_NEED_PY_SSIZE_T_CLEAN
508514
}
509515

510-
511516
PyObject *
512517
Py_BuildValue(const char *format, ...)
513518
{

Python/sysmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ sys_audit_tstate(PyThreadState *ts, const char *event,
211211

212212
/* Initialize event args now */
213213
if (argFormat && argFormat[0]) {
214-
eventArgs = _Py_VaBuildValue_SizeT(argFormat, vargs);
214+
eventArgs = Py_VaBuildValue(argFormat, vargs);
215215
if (eventArgs && !PyTuple_Check(eventArgs)) {
216216
PyObject *argTuple = PyTuple_Pack(1, eventArgs);
217217
Py_SETREF(eventArgs, argTuple);

0 commit comments

Comments
 (0)