Mercurial > cpython-lru_cache-weakref
comparison Python/errors.c @ 41769:b29d71d43c80
Add functions PyUnicode_Append() and PyUnicode_AppendAndDel() that mirror
PyString_Concat() and PyString_ConcatAndDel() (the name PyUnicode_Concat()
was already taken).
Change PyObject_Repr() to always return a unicode object.
Update all repr implementations to return unicode objects.
Add a function PyObject_ReprStr8() that calls PyObject_Repr() and converts
the result to an 8bit string.
Use PyObject_ReprStr8() where using PyObject_Repr() can't be done
straightforward.
| author | Walter Dörwald <walter@livinglogic.de> |
|---|---|
| date | Fri, 18 May 2007 17:15:44 +0000 |
| parents | 06145fbc7ab9 |
| children | 089f449a20cd |
comparison
equal
deleted
inserted
replaced
| 41768:b592985a953f | 41769:b29d71d43c80 |
|---|---|
| 52 void | 52 void |
| 53 PyErr_SetObject(PyObject *exception, PyObject *value) | 53 PyErr_SetObject(PyObject *exception, PyObject *value) |
| 54 { | 54 { |
| 55 if (exception != NULL && | 55 if (exception != NULL && |
| 56 !PyExceptionClass_Check(exception)) { | 56 !PyExceptionClass_Check(exception)) { |
| 57 PyObject *excstr = PyObject_Repr(exception); | 57 PyObject *excstr = PyObject_ReprStr8(exception); |
| 58 PyErr_Format(PyExc_SystemError, | 58 PyErr_Format(PyExc_SystemError, |
| 59 "exception %s not a BaseException subclass", | 59 "exception %s not a BaseException subclass", |
| 60 PyString_AS_STRING(excstr)); | 60 PyString_AS_STRING(excstr)); |
| 61 Py_DECREF(excstr); | 61 Py_DECREF(excstr); |
| 62 return; | 62 return; |
