mirror of https://github.com/python/cpython
bpo-43510: Fix emitting EncodingWarning from _io module. (GH-25146)
I forget to check PyErr_WarnEx() return value. But it will fail when -Werror is used.
This commit is contained in:
parent
8bbfeb3330
commit
bec8c787ec
|
@ -532,8 +532,10 @@ _io_text_encoding_impl(PyObject *module, PyObject *encoding, int stacklevel)
|
||||||
if (encoding == NULL || encoding == Py_None) {
|
if (encoding == NULL || encoding == Py_None) {
|
||||||
PyInterpreterState *interp = _PyInterpreterState_GET();
|
PyInterpreterState *interp = _PyInterpreterState_GET();
|
||||||
if (_PyInterpreterState_GetConfig(interp)->warn_default_encoding) {
|
if (_PyInterpreterState_GetConfig(interp)->warn_default_encoding) {
|
||||||
PyErr_WarnEx(PyExc_EncodingWarning,
|
if (PyErr_WarnEx(PyExc_EncodingWarning,
|
||||||
"'encoding' argument not specified", stacklevel);
|
"'encoding' argument not specified", stacklevel)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Py_INCREF(_PyIO_str_locale);
|
Py_INCREF(_PyIO_str_locale);
|
||||||
return _PyIO_str_locale;
|
return _PyIO_str_locale;
|
||||||
|
|
|
@ -1085,6 +1085,19 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
|
||||||
self->ok = 0;
|
self->ok = 0;
|
||||||
self->detached = 0;
|
self->detached = 0;
|
||||||
|
|
||||||
|
if (encoding == NULL) {
|
||||||
|
PyInterpreterState *interp = _PyInterpreterState_GET();
|
||||||
|
if (_PyInterpreterState_GetConfig(interp)->warn_default_encoding) {
|
||||||
|
if (PyErr_WarnEx(PyExc_EncodingWarning,
|
||||||
|
"'encoding' argument not specified", 1)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (strcmp(encoding, "locale") == 0) {
|
||||||
|
encoding = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (errors == Py_None) {
|
if (errors == Py_None) {
|
||||||
errors = _PyUnicode_FromId(&PyId_strict); /* borrowed */
|
errors = _PyUnicode_FromId(&PyId_strict); /* borrowed */
|
||||||
if (errors == NULL) {
|
if (errors == NULL) {
|
||||||
|
@ -1123,17 +1136,6 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
|
||||||
self->encodefunc = NULL;
|
self->encodefunc = NULL;
|
||||||
self->b2cratio = 0.0;
|
self->b2cratio = 0.0;
|
||||||
|
|
||||||
if (encoding == NULL) {
|
|
||||||
PyInterpreterState *interp = _PyInterpreterState_GET();
|
|
||||||
if (_PyInterpreterState_GetConfig(interp)->warn_default_encoding) {
|
|
||||||
PyErr_WarnEx(PyExc_EncodingWarning,
|
|
||||||
"'encoding' argument not specified", 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp(encoding, "locale") == 0) {
|
|
||||||
encoding = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (encoding == NULL) {
|
if (encoding == NULL) {
|
||||||
/* Try os.device_encoding(fileno) */
|
/* Try os.device_encoding(fileno) */
|
||||||
PyObject *fileno;
|
PyObject *fileno;
|
||||||
|
|
Loading…
Reference in New Issue