Skip to content

Commit 21abec2

Browse files
committed
forceEncodingString specialization converted to inlinable profiles
1 parent 3e9010b commit 21abec2

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/main/java/org/truffleruby/core/string/StringNodes.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,28 +1402,30 @@ protected RubyString mutableNative(RubyString string, RubyEncoding newEncoding,
14021402
}
14031403

14041404
@Specialization(guards = "libEncoding.isRubyString(newEncoding)", limit = "1")
1405-
protected RubyString forceEncodingString(RubyString string, Object newEncoding,
1405+
protected static RubyString forceEncodingString(RubyString string, Object newEncoding,
14061406
@Cached @Exclusive RubyStringLibrary libEncoding,
14071407
@Cached ToJavaStringNode toJavaStringNode,
1408-
@Cached(inline = false) BranchProfile errorProfile) {
1408+
@Cached InlinedBranchProfile errorProfile,
1409+
@Cached @Exclusive ForceEncodingNode forceEncodingNode,
1410+
@Bind("this") Node node) {
14091411
final String stringName = toJavaStringNode.executeToJavaString(newEncoding);
1410-
final RubyEncoding rubyEncoding = getContext().getEncodingManager().getRubyEncoding(stringName);
1412+
final RubyEncoding rubyEncoding = getContext(node).getEncodingManager().getRubyEncoding(stringName);
14111413

14121414
if (rubyEncoding == null) {
1413-
errorProfile.enter();
1415+
errorProfile.enter(node);
14141416
throw new RaiseException(
1415-
getContext(),
1416-
coreExceptions().argumentError(Utils.concat("unknown encoding name - ", stringName),
1417-
getNode()));
1417+
getContext(node),
1418+
coreExceptions(node).argumentError(Utils.concat("unknown encoding name - ", stringName),
1419+
getNode(node)));
14181420
}
14191421

1420-
return execute(string, rubyEncoding);
1422+
return forceEncodingNode.execute(string, rubyEncoding);
14211423
}
14221424

14231425
@Specialization(guards = { "!isRubyEncoding(newEncoding)", "isNotRubyString(newEncoding)" })
14241426
protected RubyString forceEncoding(RubyString string, Object newEncoding,
14251427
@Cached ToStrNode toStrNode,
1426-
@Cached ForceEncodingNode forceEncodingNode) {
1428+
@Cached @Exclusive ForceEncodingNode forceEncodingNode) {
14271429
return forceEncodingNode.execute(string, toStrNode.execute(newEncoding));
14281430
}
14291431
}

0 commit comments

Comments
 (0)