Skip to content

Commit 7fa11c7

Browse files
committed
normalize encoding in CharsetMapping.getCharsetNormalized()
1 parent b58e805 commit 7fa11c7

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyContextFunctions.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import com.oracle.graal.python.builtins.Python3Core;
7474
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
7575
import com.oracle.graal.python.builtins.modules.CodecsModuleBuiltins;
76+
import com.oracle.graal.python.builtins.modules.SysModuleBuiltins;
7677
import com.oracle.graal.python.builtins.modules.SysModuleBuiltins.GetFileSystemEncodingNode;
7778
import com.oracle.graal.python.builtins.modules.WarningsModuleBuiltins.WarnNode;
7879
import com.oracle.graal.python.builtins.objects.PNone;
@@ -1264,7 +1265,8 @@ public static GraalHPyUnicodeAsCharsetString asLatin1() {
12641265

12651266
@TruffleBoundary
12661267
public static GraalHPyUnicodeAsCharsetString asFSDefault() {
1267-
return new GraalHPyUnicodeAsCharsetString(CharsetMapping.getCharsetNormalized(GetFileSystemEncodingNode.getFileSystemEncoding()));
1268+
TruffleString normalizedEncoding = CharsetMapping.normalizeUncached(GetFileSystemEncodingNode.getFileSystemEncoding());
1269+
return new GraalHPyUnicodeAsCharsetString(CharsetMapping.getCharsetNormalized(normalizedEncoding));
12681270
}
12691271
}
12701272

@@ -1447,7 +1449,8 @@ public static GraalHPyUnicodeDecodeCharsetAndSize decodeFSDefault() {
14471449
@TruffleBoundary
14481450
private String decode(CodingErrorAction errorAction, byte[] bytes) {
14491451
try {
1450-
return CharsetMapping.getCharsetNormalized(charset).newDecoder().onMalformedInput(errorAction).onUnmappableCharacter(errorAction).decode(ByteBuffer.wrap(bytes)).toString();
1452+
TruffleString normalizedCharset = CharsetMapping.normalizeUncached(charset);
1453+
return CharsetMapping.getCharsetNormalized(normalizedCharset).newDecoder().onMalformedInput(errorAction).onUnmappableCharacter(errorAction).decode(ByteBuffer.wrap(bytes)).toString();
14511454
} catch (CharacterCodingException ex) {
14521455
throw CompilerDirectives.shouldNotReachHere(ex);
14531456
}
@@ -1520,7 +1523,8 @@ public static GraalHPyUnicodeDecodeCharsetAndSizeAndErrors decodeLatin1() {
15201523
@TruffleBoundary
15211524
private String decode(CodingErrorAction errorAction, byte[] bytes) {
15221525
try {
1523-
return CharsetMapping.getCharsetNormalized(charset).newDecoder().onMalformedInput(errorAction).onUnmappableCharacter(errorAction).decode(ByteBuffer.wrap(bytes)).toString();
1526+
TruffleString normalizedCharset = CharsetMapping.normalizeUncached(charset);
1527+
return CharsetMapping.getCharsetNormalized(normalizedCharset).newDecoder().onMalformedInput(errorAction).onUnmappableCharacter(errorAction).decode(ByteBuffer.wrap(bytes)).toString();
15241528
} catch (CharacterCodingException ex) {
15251529
return null;
15261530
}

0 commit comments

Comments
 (0)