Mercurial > cpython-lru_cache-weakref
comparison Python/errors.c @ 30683:3b59fa5d25b1 legacy-trunk
Simplify and speedup uses of Py_BuildValue():
* Py_BuildValue("(OOO)",a,b,c) --> PyTuple_Pack(3,a,b,c)
* Py_BuildValue("()",a) --> PyTuple_New(0)
* Py_BuildValue("O", a) --> Py_INCREF(a)
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Sun, 12 Oct 2003 19:09:37 +0000 |
| parents | 72cbc41ccc2f |
| children | 74747f62f286 |
comparison
equal
deleted
inserted
replaced
| 30682:473f4e2959a8 | 30683:3b59fa5d25b1 |
|---|---|
| 157 */ | 157 */ |
| 158 if (!inclass || !PyClass_IsSubclass(inclass, type)) { | 158 if (!inclass || !PyClass_IsSubclass(inclass, type)) { |
| 159 PyObject *args, *res; | 159 PyObject *args, *res; |
| 160 | 160 |
| 161 if (value == Py_None) | 161 if (value == Py_None) |
| 162 args = Py_BuildValue("()"); | 162 args = PyTuple_New(0); |
| 163 else if (PyTuple_Check(value)) { | 163 else if (PyTuple_Check(value)) { |
| 164 Py_INCREF(value); | 164 Py_INCREF(value); |
| 165 args = value; | 165 args = value; |
| 166 } | 166 } |
| 167 else | 167 else |
| 168 args = Py_BuildValue("(O)", value); | 168 args = PyTuple_Pack(1, value); |
| 169 | 169 |
| 170 if (args == NULL) | 170 if (args == NULL) |
| 171 goto finally; | 171 goto finally; |
| 172 res = PyEval_CallObject(type, args); | 172 res = PyEval_CallObject(type, args); |
| 173 Py_DECREF(args); | 173 Py_DECREF(args); |
| 558 goto failure; | 558 goto failure; |
| 559 } | 559 } |
| 560 classname = PyString_FromString(dot+1); | 560 classname = PyString_FromString(dot+1); |
| 561 if (classname == NULL) | 561 if (classname == NULL) |
| 562 goto failure; | 562 goto failure; |
| 563 bases = Py_BuildValue("(O)", base); | 563 bases = PyTuple_Pack(1, base); |
| 564 if (bases == NULL) | 564 if (bases == NULL) |
| 565 goto failure; | 565 goto failure; |
| 566 result = PyClass_New(bases, dict, classname); | 566 result = PyClass_New(bases, dict, classname); |
| 567 failure: | 567 failure: |
| 568 Py_XDECREF(bases); | 568 Py_XDECREF(bases); |
