Merge 3.4

This commit is contained in:
Victor Stinner 2015-07-16 22:20:19 +02:00
commit 8cc80f1d81
3 changed files with 12 additions and 0 deletions

View File

@ -270,6 +270,13 @@ class TestBase:
self.assertEqual(ostream.getvalue(), self.tstring[0]) self.assertEqual(ostream.getvalue(), self.tstring[0])
def test_streamwriter_reset_no_pending(self):
# Issue #23247: Calling reset() on a fresh StreamWriter instance
# (without pending data) must not crash
stream = BytesIO()
writer = self.writer(stream)
writer.reset()
class TestBase_Mapping(unittest.TestCase): class TestBase_Mapping(unittest.TestCase):
pass_enctest = [] pass_enctest = []

View File

@ -169,6 +169,8 @@ Core and Builtins
Library Library
------- -------
- Issue #23247: Fix a crash in the StreamWriter.reset() of CJK codecs.
- Issue #24270: Add math.isclose() and cmath.isclose() functions as per PEP 485. - Issue #24270: Add math.isclose() and cmath.isclose() functions as per PEP 485.
Contributed by Chris Barker and Tal Einat. Contributed by Chris Barker and Tal Einat.

View File

@ -1685,6 +1685,9 @@ _multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject *se
{ {
PyObject *pwrt; PyObject *pwrt;
if (!self->pending)
Py_RETURN_NONE;
pwrt = multibytecodec_encode(self->codec, &self->state, pwrt = multibytecodec_encode(self->codec, &self->state,
self->pending, NULL, self->errors, self->pending, NULL, self->errors,
MBENC_FLUSH | MBENC_RESET); MBENC_FLUSH | MBENC_RESET);