Skip to content

Commit 4fe70a0

Browse files
committed
use internal _PyUnicodeError_GetParams helper
1 parent 4c20312 commit 4fe70a0

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

Python/codecs.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -705,10 +705,7 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
705705
Py_ssize_t start, end;
706706

707707
if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeEncodeError)) {
708-
if (PyUnicodeEncodeError_GetStart(exc, &start) < 0) {
709-
return NULL;
710-
}
711-
if (PyUnicodeEncodeError_GetEnd(exc, &end) < 0) {
708+
if (_PyUnicodeError_GetParams(exc, NULL, NULL, &start, &end, true) < 0) {
712709
return NULL;
713710
}
714711
if (end <= start) {
@@ -726,18 +723,16 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
726723
return Py_BuildValue("(Nn)", res, end);
727724
}
728725
else if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeDecodeError)) {
729-
if (PyUnicodeDecodeError_GetEnd(exc, &end) < 0) {
726+
// _PyUnicodeError_GetParams() is slightly faster than the public getter
727+
if (_PyUnicodeError_GetParams(exc, NULL, NULL, NULL, &end, true) < 0) {
730728
return NULL;
731729
}
732730
return Py_BuildValue("(Cn)",
733731
(int)Py_UNICODE_REPLACEMENT_CHARACTER,
734732
end);
735733
}
736734
else if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeTranslateError)) {
737-
if (PyUnicodeTranslateError_GetStart(exc, &start) < 0) {
738-
return NULL;
739-
}
740-
if (PyUnicodeTranslateError_GetEnd(exc, &end) < 0) {
735+
if (_PyUnicodeError_GetParams(exc, NULL, NULL, &start, &end, false) < 0) {
741736
return NULL;
742737
}
743738
if (end <= start) {

0 commit comments

Comments
 (0)