Update a comment about why the __module__ can sometime be NULL.
Initialize last_string and arg member of Unpickler.
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 4976cc5..bda8efd 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -691,9 +691,9 @@
module_name = PyObject_GetAttr(global, module_str);
- /* In some rare cases (e.g., random.getrandbits), __module__ can be
- None. If it is so, then search sys.modules for the module of
- global. */
+ /* In some rare cases (e.g., bound methods of extension types),
+ __module__ can be None. If it is so, then search sys.modules
+ for the module of global. */
if (module_name == Py_None) {
Py_DECREF(module_name);
goto search;
@@ -4447,6 +4447,9 @@
if (self->memo == NULL)
return -1;
+ self->last_string = NULL;
+ self->arg = NULL;
+
return 0;
}