public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args) { RubyClass selfType = getClass(self); CacheEntry cache = this.cache; // This must be retrieved *once* to avoid racing with other threads. if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, args); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, args, context, self); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self, arg1); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self, arg1, arg2); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) { RubyClass selfType = getClass(self); CacheEntry cache = this.cache; // This must be retrieved *once* to avoid racing with other threads. if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, args, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, args, context, self); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self, arg1, arg2); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2, arg3, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self, arg1, arg2, arg3); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2, arg3); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self, arg1, arg2, arg3); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self, arg1, arg2); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) { RubyClass selfType = getClass(self); CacheEntry cache = this.cache; // This must be retrieved *once* to avoid racing with other threads. if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, args, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, args, context, self); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2, arg3, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self, arg1, arg2, arg3); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self, arg1, arg2); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args) { RubyClass selfType = getClass(self); CacheEntry cache = this.cache; // This must be retrieved *once* to avoid racing with other threads. if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, args); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, args, context, self); } }
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, block); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, block, context, self, arg1); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self, arg1); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self, arg1); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) { RubyClass selfType = getClass(self); // This must be retrieved *once* to avoid racing with other threads. CacheEntry cache = this.cache; if (cache.typeOk(selfType)) { if ((totalMonomorphicCalls++ % IRManager.IR_INLINER_THRESHOLD) == 0) inlineCheck(context, self, cache); return cache.method.call(context, self, selfType, methodName, arg1, arg2, arg3); } else { totalMonomorphicCalls = 1; return cacheAndCall(caller, selfType, context, self, arg1, arg2, arg3); } }