mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
SF patch #659536: Use PyArg_UnpackTuple where possible.
Obtain cleaner coding and a system wide performance boost by using the fast, pre-parsed PyArg_Unpack function instead of PyArg_ParseTuple function which is driven by a format string.
This commit is contained in:
parent
f8bcfb13f1
commit
ea3fdf44a2
11 changed files with 41 additions and 41 deletions
|
@ -2178,7 +2178,7 @@ instancemethod_new(PyTypeObject* type, PyObject* args, PyObject *kw)
|
|||
PyObject *self;
|
||||
PyObject *classObj;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OOO:instancemethod",
|
||||
if (!PyArg_UnpackTuple(args, "instancemethod", 3, 3,
|
||||
&func, &self, &classObj))
|
||||
return NULL;
|
||||
if (!PyCallable_Check(func)) {
|
||||
|
|
|
@ -686,7 +686,7 @@ proxy_get(proxyobject *pp, PyObject *args)
|
|||
{
|
||||
PyObject *key, *def = Py_None;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O|O:get", &key, &def))
|
||||
if (!PyArg_UnpackTuple(args, "get", 1, 2, &key, &def))
|
||||
return NULL;
|
||||
return PyObject_CallMethod(pp->dict, "get", "(OO)", key, def);
|
||||
}
|
||||
|
|
|
@ -972,7 +972,7 @@ dict_fromkeys(PyObject *cls, PyObject *args)
|
|||
PyObject *d;
|
||||
int status;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O|O:fromkeys", &seq, &value))
|
||||
if (!PyArg_UnpackTuple(args, "fromkeys", 1, 2, &seq, &value))
|
||||
return NULL;
|
||||
|
||||
d = PyObject_CallObject(cls, NULL);
|
||||
|
@ -1479,7 +1479,7 @@ dict_get(register dictobject *mp, PyObject *args)
|
|||
PyObject *val = NULL;
|
||||
long hash;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O|O:get", &key, &failobj))
|
||||
if (!PyArg_UnpackTuple(args, "get", 1, 2, &key, &failobj))
|
||||
return NULL;
|
||||
|
||||
if (!PyString_CheckExact(key) ||
|
||||
|
@ -1505,7 +1505,7 @@ dict_setdefault(register dictobject *mp, PyObject *args)
|
|||
PyObject *val = NULL;
|
||||
long hash;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O|O:setdefault", &key, &failobj))
|
||||
if (!PyArg_UnpackTuple(args, "setdefault", 1, 2, &key, &failobj))
|
||||
return NULL;
|
||||
|
||||
if (!PyString_CheckExact(key) ||
|
||||
|
@ -1834,7 +1834,7 @@ dict_init(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
PyObject *arg = NULL;
|
||||
int result = 0;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "|O:dict", &arg))
|
||||
if (!PyArg_UnpackTuple(args, "dict", 0, 1, &arg))
|
||||
result = -1;
|
||||
|
||||
else if (arg != NULL) {
|
||||
|
|
|
@ -503,7 +503,7 @@ file_truncate(PyFileObject *f, PyObject *args)
|
|||
if (f->f_fp == NULL)
|
||||
return err_closed();
|
||||
newsizeobj = NULL;
|
||||
if (!PyArg_ParseTuple(args, "|O:truncate", &newsizeobj))
|
||||
if (!PyArg_UnpackTuple(args, "truncate", 0, 1, &newsizeobj))
|
||||
return NULL;
|
||||
|
||||
/* Set newsize to current postion if newsizeobj NULL, else to the
|
||||
|
|
|
@ -588,7 +588,7 @@ cm_init(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
classmethod *cm = (classmethod *)self;
|
||||
PyObject *callable;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O:classmethod", &callable))
|
||||
if (!PyArg_UnpackTuple(args, "classmethod", 1, 1, &callable))
|
||||
return -1;
|
||||
Py_INCREF(callable);
|
||||
cm->cm_callable = callable;
|
||||
|
@ -720,7 +720,7 @@ sm_init(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
staticmethod *sm = (staticmethod *)self;
|
||||
PyObject *callable;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O:staticmethod", &callable))
|
||||
if (!PyArg_UnpackTuple(args, "staticmethod", 1, 1, &callable))
|
||||
return -1;
|
||||
Py_INCREF(callable);
|
||||
sm->sm_callable = callable;
|
||||
|
|
|
@ -1654,7 +1654,7 @@ listsort(PyListObject *self, PyObject *args)
|
|||
|
||||
assert(self != NULL);
|
||||
if (args != NULL) {
|
||||
if (!PyArg_ParseTuple(args, "|O:sort", &compare))
|
||||
if (!PyArg_UnpackTuple(args, "sort", 0, 1, &compare))
|
||||
return NULL;
|
||||
}
|
||||
merge_init(&ms, compare);
|
||||
|
|
|
@ -174,7 +174,7 @@ slice_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
|||
|
||||
start = stop = step = NULL;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O|OO:slice", &start, &stop, &step))
|
||||
if (!PyArg_UnpackTuple(args, "slice", 1, 3, &start, &stop, &step))
|
||||
return NULL;
|
||||
|
||||
/* This swapping of stop and start is to maintain similarity with
|
||||
|
|
|
@ -2046,7 +2046,7 @@ string_translate(PyStringObject *self, PyObject *args)
|
|||
int trans_table[256];
|
||||
PyObject *tableobj, *delobj = NULL;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O|O:translate",
|
||||
if (!PyArg_UnpackTuple(args, "translate", 1, 2,
|
||||
&tableobj, &delobj))
|
||||
return NULL;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue