return cacheAndCall(caller, selfType, args, context, self);
}
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) {
try {
RubyClass selfType = pollAndGetClass(context, self);
CacheEntry myCache = cache;
if (myCache.typeOk(selfType)) {
return myCache.method.call(context, self, selfType, methodName, args, block);
}
return cacheAndCall(caller, selfType, block, args, context, self);