| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -27,11 +27,20 @@ class EscapeDecodeTest(unittest.TestCase): | |||
| 27 | 27 | def test_empty_escape_decode(self): | |
| 28 | 28 | self.assertEquals(codecs.escape_decode(""), ("", 0)) | |
| 29 | 29 | ||
| 30 | + class RecodingTest(unittest.TestCase): | ||
| 31 | + def test_recoding(self): | ||
| 32 | + f = StringIO.StringIO() | ||
| 33 | + f2 = codecs.EncodedFile(f, "unicode_internal", "utf-8") | ||
| 34 | + f2.write(u"a") | ||
| 35 | + f2.close() | ||
| 36 | + # Python used to crash on this at exit because of a refcount | ||
| 37 | + # bug in _codecsmodule.c | ||
| 30 | 38 | ||
| 31 | 39 | def test_main(): | |
| 32 | 40 | suite = unittest.TestSuite() | |
| 33 | 41 | suite.addTest(unittest.makeSuite(UTF16Test)) | |
| 34 | 42 | suite.addTest(unittest.makeSuite(EscapeDecodeTest)) | |
| 43 | + suite.addTest(unittest.makeSuite(RecodingTest)) | ||
| 35 | 44 | test_support.run_suite(suite) | |
| 36 | 45 | ||
| 37 | 46 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -167,8 +167,10 @@ unicode_internal_decode(PyObject *self, | |||
| 167 | 167 | &obj, &errors)) | |
| 168 | 168 | return NULL; | |
| 169 | 169 | ||
| 170 | - if (PyUnicode_Check(obj)) | ||
| 170 | + if (PyUnicode_Check(obj)) { | ||
| 171 | + Py_INCREF(obj); | ||
| 171 | 172 | return codec_tuple(obj, PyUnicode_GET_SIZE(obj)); | |
| 173 | + } | ||
| 172 | 174 | else { | |
| 173 | 175 | if (PyObject_AsReadBuffer(obj, (const void **)&data, &size)) | |
| 174 | 176 | return NULL; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments