Skip to content

Commit

Permalink
gh-104469 : Convert _testcapi/vectorcall_limited.c to use AC (gh-107857)
Browse files Browse the repository at this point in the history
  • Loading branch information
nahyeon-an committed Aug 12, 2023
1 parent d93b4ac commit 2e27da1
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 4 deletions.
42 changes: 42 additions & 0 deletions Modules/_testcapi/clinic/vectorcall_limited.c.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 26 additions & 4 deletions Modules/_testcapi/vectorcall_limited.c
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
#define Py_LIMITED_API 0x030c0000 // 3.12
#include "parts.h"
#include "clinic/vectorcall_limited.c.h"

#ifdef LIMITED_API_AVAILABLE



/* Test Vectorcall in the limited API */

/*[clinic input]
module _testcapi
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=6361033e795369fc]*/

static PyObject *
LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) {
return PyUnicode_FromString("tp_call called");
Expand All @@ -32,8 +38,16 @@ LimitedVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw)
return self;
}

/*[clinic input]
_testcapi.call_vectorcall
callable: object
/
[clinic start generated code]*/

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 *kwname = NULL, *kwnames = NULL, *result = NULL;
Expand Down Expand Up @@ -77,8 +91,16 @@ call_vectorcall(PyObject* self, PyObject *callable)
return result;
}

/*[clinic input]
_testcapi.call_vectorcall_method
callable: object
/
[clinic start generated code]*/

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 *name = NULL, *kwname = NULL,
Expand Down Expand Up @@ -153,8 +175,8 @@ static PyType_Spec LimitedVectorCallClass_spec = {
};

static PyMethodDef TestMethods[] = {
{"call_vectorcall", call_vectorcall, METH_O},
{"call_vectorcall_method", call_vectorcall_method, METH_O},
_TESTCAPI_CALL_VECTORCALL_METHODDEF
_TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
{NULL},
};

Expand Down

0 comments on commit 2e27da1

Please sign in to comment.