]> granicus.if.org Git - python/commitdiff
PyZlib_copy(), PyZlib_uncopy(): Repair leaks on the normal-case path.
authorTim Peters <tim.peters@gmail.com>
Wed, 17 May 2006 01:30:11 +0000 (01:30 +0000)
committerTim Peters <tim.peters@gmail.com>
Wed, 17 May 2006 01:30:11 +0000 (01:30 +0000)
Modules/zlibmodule.c

index b41ed50b5cd329a1f4bb8f7551980601863f1f08..06b0690ecf8ae2b592a53e8b880ec933dce7273a 100644 (file)
@@ -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;