mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
gh-104469 : Convert _testcapi/vectorcall_limited.c to use AC (gh-107857)
This commit is contained in:
parent
d93b4ac2ff
commit
2e27da1895
2 changed files with 68 additions and 4 deletions
42
Modules/_testcapi/clinic/vectorcall_limited.c.h
generated
Normal file
42
Modules/_testcapi/clinic/vectorcall_limited.c.h
generated
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
/*[clinic input]
|
||||||
|
preserve
|
||||||
|
[clinic start generated code]*/
|
||||||
|
|
||||||
|
#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
|
||||||
|
# include "pycore_gc.h" // PyGC_Head
|
||||||
|
# include "pycore_runtime.h" // _Py_ID()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(LIMITED_API_AVAILABLE)
|
||||||
|
|
||||||
|
PyDoc_STRVAR(_testcapi_call_vectorcall__doc__,
|
||||||
|
"call_vectorcall($module, callable, /)\n"
|
||||||
|
"--\n"
|
||||||
|
"\n");
|
||||||
|
|
||||||
|
#define _TESTCAPI_CALL_VECTORCALL_METHODDEF \
|
||||||
|
{"call_vectorcall", (PyCFunction)_testcapi_call_vectorcall, METH_O, _testcapi_call_vectorcall__doc__},
|
||||||
|
|
||||||
|
#endif /* defined(LIMITED_API_AVAILABLE) */
|
||||||
|
|
||||||
|
#if defined(LIMITED_API_AVAILABLE)
|
||||||
|
|
||||||
|
PyDoc_STRVAR(_testcapi_call_vectorcall_method__doc__,
|
||||||
|
"call_vectorcall_method($module, callable, /)\n"
|
||||||
|
"--\n"
|
||||||
|
"\n");
|
||||||
|
|
||||||
|
#define _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF \
|
||||||
|
{"call_vectorcall_method", (PyCFunction)_testcapi_call_vectorcall_method, METH_O, _testcapi_call_vectorcall_method__doc__},
|
||||||
|
|
||||||
|
#endif /* defined(LIMITED_API_AVAILABLE) */
|
||||||
|
|
||||||
|
#ifndef _TESTCAPI_CALL_VECTORCALL_METHODDEF
|
||||||
|
#define _TESTCAPI_CALL_VECTORCALL_METHODDEF
|
||||||
|
#endif /* !defined(_TESTCAPI_CALL_VECTORCALL_METHODDEF) */
|
||||||
|
|
||||||
|
#ifndef _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
|
||||||
|
#define _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
|
||||||
|
#endif /* !defined(_TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF) */
|
||||||
|
/*[clinic end generated code: output=409028b637aba77b input=a9049054013a1b77]*/
|
|
@ -1,5 +1,6 @@
|
||||||
#define Py_LIMITED_API 0x030c0000 // 3.12
|
#define Py_LIMITED_API 0x030c0000 // 3.12
|
||||||
#include "parts.h"
|
#include "parts.h"
|
||||||
|
#include "clinic/vectorcall_limited.c.h"
|
||||||
|
|
||||||
#ifdef LIMITED_API_AVAILABLE
|
#ifdef LIMITED_API_AVAILABLE
|
||||||
|
|
||||||
|
@ -7,6 +8,11 @@
|
||||||
|
|
||||||
/* Test Vectorcall in the limited API */
|
/* Test Vectorcall in the limited API */
|
||||||
|
|
||||||
|
/*[clinic input]
|
||||||
|
module _testcapi
|
||||||
|
[clinic start generated code]*/
|
||||||
|
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=6361033e795369fc]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) {
|
LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
return PyUnicode_FromString("tp_call called");
|
return PyUnicode_FromString("tp_call called");
|
||||||
|
@ -32,8 +38,16 @@ LimitedVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw)
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*[clinic input]
|
||||||
|
_testcapi.call_vectorcall
|
||||||
|
|
||||||
|
callable: object
|
||||||
|
/
|
||||||
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
call_vectorcall(PyObject* self, PyObject *callable)
|
_testcapi_call_vectorcall(PyObject *module, PyObject *callable)
|
||||||
|
/*[clinic end generated code: output=bae81eec97fcaad7 input=55d88f92240957ee]*/
|
||||||
{
|
{
|
||||||
PyObject *args[3] = { NULL, NULL, NULL };
|
PyObject *args[3] = { NULL, NULL, NULL };
|
||||||
PyObject *kwname = NULL, *kwnames = NULL, *result = NULL;
|
PyObject *kwname = NULL, *kwnames = NULL, *result = NULL;
|
||||||
|
@ -77,8 +91,16 @@ leave:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*[clinic input]
|
||||||
|
_testcapi.call_vectorcall_method
|
||||||
|
|
||||||
|
callable: object
|
||||||
|
/
|
||||||
|
[clinic start generated code]*/
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
call_vectorcall_method(PyObject* self, PyObject *callable)
|
_testcapi_call_vectorcall_method(PyObject *module, PyObject *callable)
|
||||||
|
/*[clinic end generated code: output=e661f48dda08b6fb input=5ba81c27511395b6]*/
|
||||||
{
|
{
|
||||||
PyObject *args[3] = { NULL, NULL, NULL };
|
PyObject *args[3] = { NULL, NULL, NULL };
|
||||||
PyObject *name = NULL, *kwname = NULL,
|
PyObject *name = NULL, *kwname = NULL,
|
||||||
|
@ -153,8 +175,8 @@ static PyType_Spec LimitedVectorCallClass_spec = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyMethodDef TestMethods[] = {
|
static PyMethodDef TestMethods[] = {
|
||||||
{"call_vectorcall", call_vectorcall, METH_O},
|
_TESTCAPI_CALL_VECTORCALL_METHODDEF
|
||||||
{"call_vectorcall_method", call_vectorcall_method, METH_O},
|
_TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
|
||||||
{NULL},
|
{NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue