Commit cd736e71 authored by Walter Dörwald's avatar Walter Dörwald

Fix reallocation bug in unicode.translate(): The code was comparing

characters instead of character pointers to determine space requirements.
parent bc875f5a
......@@ -136,6 +136,7 @@ class UnicodeTest(
self.checkequalnofix(u'iiix', u'abababc', 'translate', {ord('a'):None, ord('b'):ord('i'), ord('c'):u'x'})
self.checkequalnofix(u'<i><i><i>c', u'abababc', 'translate', {ord('a'):None, ord('b'):u'<i>'})
self.checkequalnofix(u'c', u'abababc', 'translate', {ord('a'):None, ord('b'):u''})
self.checkequalnofix(u'xyyx', u'xzx', 'translate', {ord('z'):u'yy'})
self.assertRaises(TypeError, u'hello'.translate)
self.assertRaises(TypeError, u'abababc'.translate, {ord('a'):''})
......
......@@ -3283,7 +3283,7 @@ int charmaptranslate_output(const Py_UNICODE *startinp, const Py_UNICODE *curinp
else if (repsize!=0) {
/* more than one character */
int requiredsize = (*outp-PyUnicode_AS_UNICODE(*outobj)) +
(insize - (*curinp-*startinp)) +
(insize - (curinp-startinp)) +
repsize - 1;
if (charmaptranslate_makespace(outobj, outp, requiredsize))
return -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment