Index: Lib/test/test_zlib.py =================================================================== --- Lib/test/test_zlib.py (révision 66240) +++ Lib/test/test_zlib.py (copie de travail) @@ -110,6 +110,8 @@ y1 = dco.decompress(x1 + x2) y2 = dco.flush() self.assertEqual(data, y1 + y2) + self.assert_(isinstance(dco.unconsumed_tail, bytes)) + self.assert_(isinstance(dco.unused_data, bytes)) def test_compressoptions(self): # specify lots of options to compressobj() Index: Modules/zlibmodule.c =================================================================== --- Modules/zlibmodule.c (révision 66240) +++ Modules/zlibmodule.c (copie de travail) @@ -96,12 +96,12 @@ if (self == NULL) return NULL; self->is_initialised = 0; - self->unused_data = PyByteArray_FromStringAndSize("", 0); + self->unused_data = PyBytes_FromStringAndSize("", 0); if (self->unused_data == NULL) { Py_DECREF(self); return NULL; } - self->unconsumed_tail = PyByteArray_FromStringAndSize("", 0); + self->unconsumed_tail = PyBytes_FromStringAndSize("", 0); if (self->unconsumed_tail == NULL) { Py_DECREF(self); return NULL; @@ -560,7 +560,7 @@ of specified size. Return the unconsumed tail in an attribute.*/ if(max_length) { Py_DECREF(self->unconsumed_tail); - self->unconsumed_tail = PyByteArray_FromStringAndSize((char *)self->zst.next_in, + self->unconsumed_tail = PyBytes_FromStringAndSize((char *)self->zst.next_in, self->zst.avail_in); if(!self->unconsumed_tail) { Py_DECREF(RetVal); @@ -577,7 +577,7 @@ */ if (err == Z_STREAM_END) { Py_XDECREF(self->unused_data); /* Free original empty string */ - self->unused_data = PyByteArray_FromStringAndSize( + self->unused_data = PyBytes_FromStringAndSize( (char *)self->zst.next_in, self->zst.avail_in); if (self->unused_data == NULL) { Py_DECREF(RetVal);