diff options
author | Christian Tismer <tismer@stackless.com> | 2004-02-26 16:21:45 (GMT) |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2004-02-26 16:21:45 (GMT) |
commit | 2460c62152fe43f9da9381d09fd294f21e3640d7 (patch) | |
tree | e4fce117e13ae3cbbe7dbfa873e9136a0b994c50 | |
parent | d594849c42b6141622f8e442e26b49e2df6ef4ff (diff) | |
download | cpython-2460c62152fe43f9da9381d09fd294f21e3640d7.zip cpython-2460c62152fe43f9da9381d09fd294f21e3640d7.tar.gz cpython-2460c62152fe43f9da9381d09fd294f21e3640d7.tar.bz2 |
made cPickle fall back to the copy_reg/reduce protocol,
if a function cannot be stored as global.
This is for compatibility with pickle.py .
-rw-r--r-- | Modules/cPickle.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Modules/cPickle.c b/Modules/cPickle.c index 4961c3b..105a2e9 100644 --- a/Modules/cPickle.c +++ b/Modules/cPickle.c @@ -2418,6 +2418,11 @@ save(Picklerobject *self, PyObject *args, int pers_save) case 'f': if (type == &PyFunction_Type) { res = save_global(self, args, NULL); + if (res && PyErr_ExceptionMatches(PickleError)) { + /* fall back to reduce */ + PyErr_Clear(); + break; + } goto finally; } break; |