Skip to content

Commit 1a4a5fa

Browse files
committed
Extract SplatToArgsNode creation
* 377 -> 250 for org.truffleruby.language.dispatch.RubyCallNode.splatArgs * subTreeCost 363 -> 237 in org.truffleruby.language.dispatch.RubyCallNode.execute
1 parent be93227 commit 1a4a5fa

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/main/java/org/truffleruby/language/dispatch/RubyCallNode.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,16 @@ private void executeArguments(VirtualFrame frame, Object[] rubyArgs) {
215215
private Object[] splatArgs(Object receiverObject, Object[] rubyArgs) {
216216
if (splatToArgs == null) {
217217
CompilerDirectives.transferToInterpreterAndInvalidate();
218-
splatToArgs = insert(new SplatToArgsNode(getLanguage()));
218+
splatToArgs = createSplatToArgsNode();
219219
}
220220

221221
return splatToArgs.execute(receiverObject, (RubyArray) RubyArguments.getArgument(rubyArgs, 0));
222222
}
223223

224+
private SplatToArgsNode createSplatToArgsNode() {
225+
return insert(new SplatToArgsNode(getLanguage()));
226+
}
227+
224228
@Override
225229
public Object isDefined(VirtualFrame frame, RubyLanguage language, RubyContext context) {
226230
if (definedNode == null) {

0 commit comments

Comments
 (0)