mirror of
https://github.com/python/cpython.git
synced 2025-09-12 19:57:40 +00:00
Allow for 12 arguments max, in stead of 8. Untested.
This commit is contained in:
parent
bf27298364
commit
75e62f2201
1 changed files with 9 additions and 6 deletions
|
@ -65,7 +65,7 @@ typedef anything (*anyroutine) Py_PROTO((...));
|
||||||
|
|
||||||
/* Other constants */
|
/* Other constants */
|
||||||
#define MAXNAME 31 /* Maximum size of names, for printing only */
|
#define MAXNAME 31 /* Maximum size of names, for printing only */
|
||||||
#define MAXARG 8 /* Maximum number of arguments */
|
#define MAXARG 12 /* Maximum number of arguments */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Routines to convert arguments between Python and C.
|
** Routines to convert arguments between Python and C.
|
||||||
|
@ -666,7 +666,7 @@ cdc_call(self, args, kwargs)
|
||||||
{
|
{
|
||||||
char buf[256];
|
char buf[256];
|
||||||
int i, pargindex;
|
int i, pargindex;
|
||||||
anything c_args[MAXARG] = {0, 0, 0, 0, 0, 0, 0, 0};
|
anything c_args[MAXARG] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
anything c_rv;
|
anything c_rv;
|
||||||
conventry *cp;
|
conventry *cp;
|
||||||
PyObject *curarg;
|
PyObject *curarg;
|
||||||
|
@ -706,7 +706,8 @@ cdc_call(self, args, kwargs)
|
||||||
/* Call function */
|
/* Call function */
|
||||||
func = self->routine->rtn;
|
func = self->routine->rtn;
|
||||||
c_rv = (*func)(c_args[0], c_args[1], c_args[2], c_args[3],
|
c_rv = (*func)(c_args[0], c_args[1], c_args[2], c_args[3],
|
||||||
c_args[4], c_args[5], c_args[6], c_args[7]);
|
c_args[4], c_args[5], c_args[6], c_args[7],
|
||||||
|
c_args[8], c_args[9], c_args[10], c_args[11]);
|
||||||
|
|
||||||
/* Decode return value, and store into returnvalues if needed */
|
/* Decode return value, and store into returnvalues if needed */
|
||||||
pargindex = 0;
|
pargindex = 0;
|
||||||
|
@ -1066,17 +1067,19 @@ cdll_newcall(self, args)
|
||||||
PyObject *args;
|
PyObject *args;
|
||||||
{
|
{
|
||||||
cdrobject *routine;
|
cdrobject *routine;
|
||||||
conventry *argconv[MAXARG] = {0, 0, 0, 0, 0, 0, 0, 0};
|
conventry *argconv[MAXARG] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||||
rv2py_converter rvconv;
|
rv2py_converter rvconv;
|
||||||
int npargs, ncargs;
|
int npargs, ncargs;
|
||||||
|
|
||||||
/* Note: the next format depends on MAXARG */
|
/* Note: the next format depends on MAXARG */
|
||||||
if (!PyArg_ParseTuple(args, "O!O&|O&O&O&O&O&O&O&O&", &Cdrtype, &routine,
|
if (!PyArg_ParseTuple(args, "O!O&|O&O&O&O&O&O&O&O&O&O&O&O&", &Cdrtype, &routine,
|
||||||
argparse_rvconv, &rvconv,
|
argparse_rvconv, &rvconv,
|
||||||
argparse_conv, &argconv[0], argparse_conv, &argconv[1],
|
argparse_conv, &argconv[0], argparse_conv, &argconv[1],
|
||||||
argparse_conv, &argconv[2], argparse_conv, &argconv[3],
|
argparse_conv, &argconv[2], argparse_conv, &argconv[3],
|
||||||
argparse_conv, &argconv[4], argparse_conv, &argconv[5],
|
argparse_conv, &argconv[4], argparse_conv, &argconv[5],
|
||||||
argparse_conv, &argconv[6], argparse_conv, &argconv[7]))
|
argparse_conv, &argconv[6], argparse_conv, &argconv[7],
|
||||||
|
argparse_conv, &argconv[8], argparse_conv, &argconv[9],
|
||||||
|
argparse_conv, &argconv[10], argparse_conv, &argconv[11]))
|
||||||
return NULL;
|
return NULL;
|
||||||
npargs = 0;
|
npargs = 0;
|
||||||
for(ncargs=0; ncargs < MAXARG && argconv[ncargs]; ncargs++) {
|
for(ncargs=0; ncargs < MAXARG && argconv[ncargs]; ncargs++) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue