@@ -160,7 +160,8 @@ protected Source doGeneric(VirtualFrame frame, Object pattern, TruffleString fla
160160 @ Cached CastToTruffleStringNode cast ,
161161 @ CachedLibrary (limit = "3" ) PythonBufferAcquireLibrary bufferAcquireLib ,
162162 @ CachedLibrary (limit = "1" ) PythonBufferAccessLibrary bufferLib ,
163- @ Cached TruffleString .FromByteArrayNode fromByteArrayNode ) {
163+ @ Cached TruffleString .FromByteArrayNode fromByteArrayNode ,
164+ @ Cached TruffleString .SwitchEncodingNode switchEncodingNode ) {
164165 try {
165166 return doString (cast .execute (pattern ), flags , options , inliningTarget , nonEmptyOptionsProfile , appendStringNode , toStringNode , toJavaStringNode );
166167 } catch (CannotCastException ce ) {
@@ -173,7 +174,7 @@ protected Source doGeneric(VirtualFrame frame, Object pattern, TruffleString fla
173174 try {
174175 byte [] bytes = bufferLib .getInternalOrCopiedByteArray (buffer );
175176 int bytesLen = bufferLib .getBufferLength (buffer );
176- TruffleString patternStr = fromByteArrayNode .execute (bytes , 0 , bytesLen , Encoding .ISO_8859_1 , false );
177+ TruffleString patternStr = switchEncodingNode . execute ( fromByteArrayNode .execute (bytes , 0 , bytesLen , Encoding .ISO_8859_1 , false ), TS_ENCODING );
177178 return constructRegexSource (inliningTarget , T_ENCODING_LATIN_1 , options , patternStr , flags , nonEmptyOptionsProfile , appendStringNode , toStringNode , toJavaStringNode );
178179 } finally {
179180 bufferLib .release (buffer , frame , this );
0 commit comments