Skip to content

Commit 6657131

Browse files
committed
Convert GetCodePointNode to DSL inlinable node
1 parent 004041b commit 6657131

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -569,20 +569,23 @@ Object invert(RubyString string,
569569
}
570570

571571
@ImportStatic(StringGuards.class)
572+
@GenerateCached(false)
573+
@GenerateInline
572574
public abstract static class GetCodePointNode extends RubyBaseNode {
573575

574-
public abstract int executeGetCodePoint(AbstractTruffleString string, RubyEncoding encoding, int byteIndex);
576+
public abstract int executeGetCodePoint(Node node, AbstractTruffleString string, RubyEncoding encoding,
577+
int byteIndex);
575578

576579
@Specialization
577-
int getCodePoint(AbstractTruffleString string, RubyEncoding encoding, int byteIndex,
578-
@Cached TruffleString.CodePointAtByteIndexNode getCodePointNode,
580+
static int getCodePoint(Node node, AbstractTruffleString string, RubyEncoding encoding, int byteIndex,
581+
@Cached(inline = false) TruffleString.CodePointAtByteIndexNode getCodePointNode,
579582
@Cached InlinedBranchProfile badCodePointProfile) {
580583
int codePoint = getCodePointNode.execute(string, byteIndex, encoding.tencoding,
581584
ErrorHandling.RETURN_NEGATIVE);
582585
if (codePoint == -1) {
583-
badCodePointProfile.enter(this);
584-
throw new RaiseException(getContext(),
585-
coreExceptions().argumentErrorInvalidByteSequence(encoding, this));
586+
badCodePointProfile.enter(node);
587+
throw new RaiseException(getContext(node),
588+
coreExceptions(node).argumentErrorInvalidByteSequence(encoding, node));
586589
}
587590
return codePoint;
588591
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1681,7 +1681,8 @@ int ordEmpty(Object string,
16811681
int ord(Object string,
16821682
@Cached @Shared RubyStringLibrary strings,
16831683
@Cached StringHelperNodes.GetCodePointNode getCodePointNode) {
1684-
return getCodePointNode.executeGetCodePoint(strings.getTString(string), strings.getEncoding(string), 0);
1684+
return getCodePointNode.executeGetCodePoint(this, strings.getTString(string), strings.getEncoding(string),
1685+
0);
16851686
}
16861687

16871688
}

0 commit comments

Comments
 (0)