Skip to content

Commit 1029a88

Browse files
committed
Also use a GetMethodObjectNode for ImmutableRubyObject#readMember
1 parent 265bc6e commit 1029a88

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/main/java/org/truffleruby/language/ImmutableRubyObject.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.truffleruby.cext.ValueWrapper;
1616
import org.truffleruby.interop.ForeignToRubyArgumentsNode;
1717
import org.truffleruby.interop.ForeignToRubyNode;
18+
import org.truffleruby.language.dispatch.DispatchConfiguration;
1819
import org.truffleruby.language.dispatch.DispatchNode;
1920
import org.truffleruby.language.dispatch.InternalRespondToNode;
2021
import org.truffleruby.language.library.RubyLibrary;
@@ -28,6 +29,7 @@
2829
import com.oracle.truffle.api.library.ExportLibrary;
2930
import com.oracle.truffle.api.library.ExportMessage;
3031
import com.oracle.truffle.api.profiles.BranchProfile;
32+
import org.truffleruby.language.methods.GetMethodObjectNode;
3133

3234
/** A subset of messages from {@link org.truffleruby.language.RubyDynamicObject} for immutable objects. Such objects
3335
* have no instance variables, so the logic is simpler. We cannot easily reuse RubyDynamicObject messages since the
@@ -111,12 +113,12 @@ public boolean isMemberReadable(String name,
111113
public Object readMember(String name,
112114
@Cached @Shared("definedNode") InternalRespondToNode definedNode,
113115
@Cached ForeignToRubyNode nameToRubyNode,
114-
@Cached @Exclusive DispatchNode dispatch,
116+
@Cached GetMethodObjectNode getMethodObjectNode,
115117
@Shared("errorProfile") @Cached BranchProfile errorProfile)
116118
throws UnknownIdentifierException {
117119
if (definedNode.execute(null, this, name)) {
118120
Object rubyName = nameToRubyNode.executeConvert(name);
119-
return dispatch.call(this, "method", rubyName);
121+
return getMethodObjectNode.execute(null, this, rubyName, DispatchConfiguration.PRIVATE, null);
120122
} else {
121123
errorProfile.enter();
122124
throw UnknownIdentifierException.create(name);

0 commit comments

Comments
 (0)