@@ -463,7 +463,7 @@ unicode_check_encoding_errors(const char *encoding, const char *errors)
463
463
464
464
/* Avoid calling _PyCodec_Lookup() and PyCodec_LookupError() before the
465
465
codec registry is ready: before_PyUnicode_InitEncodings() is called. */
466
- if (!interp -> fs_codec .encoding ) {
466
+ if (!interp -> unicode . fs_codec .encoding ) {
467
467
return 0 ;
468
468
}
469
469
@@ -3650,16 +3650,17 @@ PyObject *
3650
3650
PyUnicode_EncodeFSDefault (PyObject * unicode )
3651
3651
{
3652
3652
PyInterpreterState * interp = _PyInterpreterState_GET ();
3653
- if (interp -> fs_codec .utf8 ) {
3653
+ struct _Py_unicode_fs_codec * fs_codec = & interp -> unicode .fs_codec ;
3654
+ if (fs_codec -> utf8 ) {
3654
3655
return unicode_encode_utf8 (unicode ,
3655
- interp -> fs_codec . error_handler ,
3656
- interp -> fs_codec . errors );
3656
+ fs_codec -> error_handler ,
3657
+ fs_codec -> errors );
3657
3658
}
3658
3659
#ifndef _Py_FORCE_UTF8_FS_ENCODING
3659
- else if (interp -> fs_codec . encoding ) {
3660
+ else if (fs_codec -> encoding ) {
3660
3661
return PyUnicode_AsEncodedString (unicode ,
3661
- interp -> fs_codec . encoding ,
3662
- interp -> fs_codec . errors );
3662
+ fs_codec -> encoding ,
3663
+ fs_codec -> errors );
3663
3664
}
3664
3665
#endif
3665
3666
else {
@@ -3886,17 +3887,18 @@ PyObject*
3886
3887
PyUnicode_DecodeFSDefaultAndSize (const char * s , Py_ssize_t size )
3887
3888
{
3888
3889
PyInterpreterState * interp = _PyInterpreterState_GET ();
3889
- if (interp -> fs_codec .utf8 ) {
3890
+ struct _Py_unicode_fs_codec * fs_codec = & interp -> unicode .fs_codec ;
3891
+ if (fs_codec -> utf8 ) {
3890
3892
return unicode_decode_utf8 (s , size ,
3891
- interp -> fs_codec . error_handler ,
3892
- interp -> fs_codec . errors ,
3893
+ fs_codec -> error_handler ,
3894
+ fs_codec -> errors ,
3893
3895
NULL );
3894
3896
}
3895
3897
#ifndef _Py_FORCE_UTF8_FS_ENCODING
3896
- else if (interp -> fs_codec . encoding ) {
3898
+ else if (fs_codec -> encoding ) {
3897
3899
return PyUnicode_Decode (s , size ,
3898
- interp -> fs_codec . encoding ,
3899
- interp -> fs_codec . errors );
3900
+ fs_codec -> encoding ,
3901
+ fs_codec -> errors );
3900
3902
}
3901
3903
#endif
3902
3904
else {
@@ -16071,16 +16073,17 @@ init_fs_codec(PyInterpreterState *interp)
16071
16073
return -1 ;
16072
16074
}
16073
16075
16074
- PyMem_RawFree (interp -> fs_codec .encoding );
16075
- interp -> fs_codec .encoding = encoding ;
16076
+ struct _Py_unicode_fs_codec * fs_codec = & interp -> unicode .fs_codec ;
16077
+ PyMem_RawFree (fs_codec -> encoding );
16078
+ fs_codec -> encoding = encoding ;
16076
16079
/* encoding has been normalized by init_fs_encoding() */
16077
- interp -> fs_codec . utf8 = (strcmp (encoding , "utf-8" ) == 0 );
16078
- PyMem_RawFree (interp -> fs_codec . errors );
16079
- interp -> fs_codec . errors = errors ;
16080
- interp -> fs_codec . error_handler = error_handler ;
16080
+ fs_codec -> utf8 = (strcmp (encoding , "utf-8" ) == 0 );
16081
+ PyMem_RawFree (fs_codec -> errors );
16082
+ fs_codec -> errors = errors ;
16083
+ fs_codec -> error_handler = error_handler ;
16081
16084
16082
16085
#ifdef _Py_FORCE_UTF8_FS_ENCODING
16083
- assert (interp -> fs_codec . utf8 == 1 );
16086
+ assert (fs_codec -> utf8 == 1 );
16084
16087
#endif
16085
16088
16086
16089
/* At this point, PyUnicode_EncodeFSDefault() and
@@ -16089,8 +16092,8 @@ init_fs_codec(PyInterpreterState *interp)
16089
16092
16090
16093
/* Set Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
16091
16094
global configuration variables. */
16092
- if (_Py_SetFileSystemEncoding (interp -> fs_codec . encoding ,
16093
- interp -> fs_codec . errors ) < 0 ) {
16095
+ if (_Py_SetFileSystemEncoding (fs_codec -> encoding ,
16096
+ fs_codec -> errors ) < 0 ) {
16094
16097
PyErr_NoMemory ();
16095
16098
return -1 ;
16096
16099
}
@@ -16133,15 +16136,14 @@ _PyUnicode_InitEncodings(PyThreadState *tstate)
16133
16136
16134
16137
16135
16138
static void
16136
- _PyUnicode_FiniEncodings (PyThreadState * tstate )
16139
+ _PyUnicode_FiniEncodings (struct _Py_unicode_fs_codec * fs_codec )
16137
16140
{
16138
- PyInterpreterState * interp = tstate -> interp ;
16139
- PyMem_RawFree (interp -> fs_codec .encoding );
16140
- interp -> fs_codec .encoding = NULL ;
16141
- interp -> fs_codec .utf8 = 0 ;
16142
- PyMem_RawFree (interp -> fs_codec .errors );
16143
- interp -> fs_codec .errors = NULL ;
16144
- interp -> fs_codec .error_handler = _Py_ERROR_UNKNOWN ;
16141
+ PyMem_RawFree (fs_codec -> encoding );
16142
+ fs_codec -> encoding = NULL ;
16143
+ fs_codec -> utf8 = 0 ;
16144
+ PyMem_RawFree (fs_codec -> errors );
16145
+ fs_codec -> errors = NULL ;
16146
+ fs_codec -> error_handler = _Py_ERROR_UNKNOWN ;
16145
16147
}
16146
16148
16147
16149
@@ -16199,7 +16201,7 @@ _PyUnicode_Fini(PyThreadState *tstate)
16199
16201
unicode_clear_static_strings ();
16200
16202
}
16201
16203
16202
- _PyUnicode_FiniEncodings (tstate );
16204
+ _PyUnicode_FiniEncodings (& tstate -> interp -> unicode . fs_codec );
16203
16205
}
16204
16206
16205
16207
0 commit comments