summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/zlibmodule.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index b41ed50..06b0690 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -685,10 +685,12 @@ PyZlib_copy(compobject *self)
goto error;
}
+ Py_INCREF(self->unused_data);
+ Py_INCREF(self->unconsumed_tail);
+ Py_XDECREF(retval->unused_data);
+ Py_XDECREF(retval->unconsumed_tail);
retval->unused_data = self->unused_data;
retval->unconsumed_tail = self->unconsumed_tail;
- Py_INCREF(retval->unused_data);
- Py_INCREF(retval->unconsumed_tail);
/* Mark it as being initialized */
retval->is_initialised = 1;
@@ -698,7 +700,7 @@ PyZlib_copy(compobject *self)
error:
LEAVE_ZLIB
- Py_XDECREF(retval);
+ Py_XDECREF(retval);
return NULL;
}
@@ -734,10 +736,12 @@ PyZlib_uncopy(compobject *self)
goto error;
}
+ Py_INCREF(self->unused_data);
+ Py_INCREF(self->unconsumed_tail);
+ Py_XDECREF(retval->unused_data);
+ Py_XDECREF(retval->unconsumed_tail);
retval->unused_data = self->unused_data;
retval->unconsumed_tail = self->unconsumed_tail;
- Py_INCREF(retval->unused_data);
- Py_INCREF(retval->unconsumed_tail);
/* Mark it as being initialized */
retval->is_initialised = 1;