Mercurial > cpython-lru_cache-weakref
diff Python/errors.c @ 38246:ee2139935a1d legacy-trunk
PyErr_NewException now accepts a tuple of base classes as its
"base" parameter.
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Tue, 23 May 2006 11:17:21 +0000 |
| parents | 7bbb9b5f7adc |
| children | 698198cabbc5 |
line wrap: on
line diff
--- a/Python/errors.c Tue May 23 11:04:24 2006 +0000 +++ b/Python/errors.c Tue May 23 11:17:21 2006 +0000 @@ -527,6 +527,7 @@ } + PyObject * PyErr_NewException(char *name, PyObject *base, PyObject *dict) { @@ -559,9 +560,15 @@ classname = PyString_FromString(dot+1); if (classname == NULL) goto failure; - bases = PyTuple_Pack(1, base); - if (bases == NULL) - goto failure; + if (PyTuple_Check(base)) { + bases = base; + /* INCREF as we create a new ref in the else branch */ + Py_INCREF(bases); + } else { + bases = PyTuple_Pack(1, base); + if (bases == NULL) + goto failure; + } result = PyClass_New(bases, dict, classname); failure: Py_XDECREF(bases);
