Skip to content

Commit bad02d9

Browse files
committed
Avoid storing uncached nodes in @child fields in DispatchNode where possible
1 parent 181ecc4 commit bad02d9

File tree

1 file changed

+4
-18
lines changed

1 file changed

+4
-18
lines changed

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

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -395,34 +395,20 @@ protected Uncached(DispatchConfiguration config) {
395395

396396
@Override
397397
protected Object callForeign(Object receiver, String methodName, Object[] rubyArgs) {
398-
if (callForeign == null) {
399-
CompilerDirectives.transferToInterpreterAndInvalidate();
400-
callForeign = insert(CallForeignMethodNode.getUncached());
401-
}
402-
403398
final Object block = RubyArguments.getBlock(rubyArgs);
404399
final Object[] arguments = RubyArguments.getPositionalArguments(rubyArgs, false);
405-
return callForeign.execute(receiver, methodName, block, arguments);
400+
return CallForeignMethodNode.getUncached().execute(receiver, methodName, block, arguments);
406401
}
407402

408403
@Override
409404
protected Object callMethodMissingNode(Frame frame, Object receiver, Object[] rubyArgs) {
410-
if (callMethodMissing == null) {
411-
CompilerDirectives.transferToInterpreterAndInvalidate();
412-
callMethodMissing = insert(
413-
DispatchNode.getUncached(DispatchConfiguration.PRIVATE_RETURN_MISSING_IGNORE_REFINEMENTS));
414-
}
415-
416-
return callMethodMissing.dispatch(frame, receiver, "method_missing", rubyArgs);
405+
return DispatchNode.getUncached(DispatchConfiguration.PRIVATE_RETURN_MISSING_IGNORE_REFINEMENTS)
406+
.dispatch(frame, receiver, "method_missing", rubyArgs);
417407
}
418408

419409
@Override
420410
protected RubySymbol nameToSymbol(String methodName) {
421-
if (toSymbol == null) {
422-
CompilerDirectives.transferToInterpreterAndInvalidate();
423-
toSymbol = insert(ToSymbolNode.getUncached());
424-
}
425-
return toSymbol.execute(methodName);
411+
return ToSymbolNode.getUncached().execute(methodName);
426412
}
427413

428414
@Override

0 commit comments

Comments
 (0)