public DynamicMethod getMethod(ThreadContext context, IRubyObject self, int index, String methodName) {
return getMethod(context, pollAndGetClass(context, self), index, methodName);
}
private DynamicMethod cacheAndGet(ThreadContext context, RubyClass selfType, int index, String methodName) {
CacheEntry entry = selfType.searchWithCache(methodName);
DynamicMethod method = entry.method;
if (method.isUndefined()) {
return RuntimeHelpers.selectMethodMissing(context, selfType, method.getVisibility(), methodName, CallType.FUNCTIONAL);
}
methodCache[index] = entry;