@@ -160,7 +160,8 @@ protected Source doGeneric(VirtualFrame frame, Object pattern, TruffleString fla
160
160
@ Cached CastToTruffleStringNode cast ,
161
161
@ CachedLibrary (limit = "3" ) PythonBufferAcquireLibrary bufferAcquireLib ,
162
162
@ CachedLibrary (limit = "1" ) PythonBufferAccessLibrary bufferLib ,
163
- @ Cached TruffleString .FromByteArrayNode fromByteArrayNode ) {
163
+ @ Cached TruffleString .FromByteArrayNode fromByteArrayNode ,
164
+ @ Cached TruffleString .SwitchEncodingNode switchEncodingNode ) {
164
165
try {
165
166
return doString (cast .execute (pattern ), flags , options , inliningTarget , nonEmptyOptionsProfile , appendStringNode , toStringNode , toJavaStringNode );
166
167
} catch (CannotCastException ce ) {
@@ -173,7 +174,7 @@ protected Source doGeneric(VirtualFrame frame, Object pattern, TruffleString fla
173
174
try {
174
175
byte [] bytes = bufferLib .getInternalOrCopiedByteArray (buffer );
175
176
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 );
177
178
return constructRegexSource (inliningTarget , T_ENCODING_LATIN_1 , options , patternStr , flags , nonEmptyOptionsProfile , appendStringNode , toStringNode , toJavaStringNode );
178
179
} finally {
179
180
bufferLib .release (buffer , frame , this );
0 commit comments