Mercurial > cpython-lru_cache-weakref
comparison Python/errors.c @ 28571:5fbdcaef9dda legacy-trunk
PyErr_NormalizeException(): in the type==NULL test, we should simply
return. Setting an exception can mess with the exception state, and
continuing is definitely wrong (since type is dereferenced later on).
Some code that calls this seems to be prepared for a NULL exception
type, so let's be safe rather than sorry and simply assume there's
nothing to normalize in this case.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 10 Apr 2003 20:29:48 +0000 |
| parents | e07b21ea3c45 |
| children | 72cbc41ccc2f |
comparison
equal
deleted
inserted
replaced
| 28570:bfc7a9fa34d6 | 28571:5fbdcaef9dda |
|---|---|
| 129 PyObject *value = *val; | 129 PyObject *value = *val; |
| 130 PyObject *inclass = NULL; | 130 PyObject *inclass = NULL; |
| 131 PyObject *initial_tb = NULL; | 131 PyObject *initial_tb = NULL; |
| 132 | 132 |
| 133 if (type == NULL) { | 133 if (type == NULL) { |
| 134 /* This is a bug. Should never happen. Don't dump core. */ | 134 /* There was no exception, so nothing to do. */ |
| 135 PyErr_SetString(PyExc_SystemError, | 135 return; |
| 136 "PyErr_NormalizeException() called without exception"); | |
| 137 } | 136 } |
| 138 | 137 |
| 139 /* If PyErr_SetNone() was used, the value will have been actually | 138 /* If PyErr_SetNone() was used, the value will have been actually |
| 140 set to NULL. | 139 set to NULL. |
| 141 */ | 140 */ |
