@@ -993,14 +993,19 @@ builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
993
993
994
994
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
995
995
static PyObject *
996
- builtin_getattr (PyObject * self , PyObject * args )
996
+ builtin_getattr (PyObject * self , PyObject * * args , Py_ssize_t nargs ,
997
+ PyObject * kwnames )
997
998
{
998
999
PyObject * v , * result , * dflt = NULL ;
999
1000
PyObject * name ;
1000
1001
1001
- if (!PyArg_UnpackTuple (args , "getattr" , 2 , 3 , & v , & name , & dflt ))
1002
+ if (!_PyArg_UnpackStack (args , nargs , "getattr" , 2 , 3 , & v , & name , & dflt ))
1002
1003
return NULL ;
1003
1004
1005
+ if (!_PyArg_NoStackKeywords ("getattr" , kwnames )) {
1006
+ return NULL ;
1007
+ }
1008
+
1004
1009
if (!PyUnicode_Check (name )) {
1005
1010
PyErr_SetString (PyExc_TypeError ,
1006
1011
"getattr(): attribute name must be string" );
@@ -2622,7 +2627,7 @@ static PyMethodDef builtin_methods[] = {
2622
2627
BUILTIN_EVAL_METHODDEF
2623
2628
BUILTIN_EXEC_METHODDEF
2624
2629
BUILTIN_FORMAT_METHODDEF
2625
- {"getattr" , builtin_getattr , METH_VARARGS , getattr_doc },
2630
+ {"getattr" , ( PyCFunction ) builtin_getattr , METH_FASTCALL , getattr_doc },
2626
2631
BUILTIN_GLOBALS_METHODDEF
2627
2632
BUILTIN_HASATTR_METHODDEF
2628
2633
BUILTIN_HASH_METHODDEF
0 commit comments