mirror of https://github.com/python/cpython
A change to sync with pickle.py:
find_class(): We no longer mask all exceptions[1] by transforming them into SystemError. The latter is definitely not the right thing to do, so we let any exceptions that occur in the PyObject_GetAttr() call to simply propagate up if they occur. [1] Note that pickle only masked ImportError, KeyError, and AttributeError, but cPickle masked all exceptions.
This commit is contained in:
parent
bf4d959d28
commit
9b481ff3d6
|
@ -2537,14 +2537,6 @@ find_class(PyObject *py_module_name, PyObject *py_global_name, PyObject *fc) {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
global = PyObject_GetAttr(module, py_global_name);
|
global = PyObject_GetAttr(module, py_global_name);
|
||||||
if (global == NULL) {
|
|
||||||
char buf[256 + 37];
|
|
||||||
sprintf(buf, "Failed to import class %.128s from module %.128s",
|
|
||||||
PyString_AS_STRING((PyStringObject*)py_global_name),
|
|
||||||
PyString_AS_STRING((PyStringObject*)py_module_name));
|
|
||||||
PyErr_SetString(PyExc_SystemError, buf);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return global;
|
return global;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue