@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) { if (box.callCount >= 0) { return tryJitReturnMethod(context).call(context, self, clazz, name, args, block); } return box.actualMethod.call(context, self, clazz, name, args, block); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name) { if (compiledMethod == null) initializeMethod(); return compiledMethod.call(context, self, clazz, name); }
@Override public DynamicMethod dup() { return new ProfilingDynamicMethod(delegate.dup()); } }
@Override public Visibility getVisibility() { if (compiledMethod == null) initializeMethod(); return compiledMethod.getVisibility(); }
@Override public RubyModule getImplementationClass() { if (compiledMethod == null) initializeMethod(); return compiledMethod.getImplementationClass(); }
@Override protected RubyModule getProtectedClass() { if (compiledMethod == null) initializeMethod(); return compiledMethod.getProtectedClass(); }
@Override public boolean isNative() { if (compiledMethod == null) initializeMethod(); return compiledMethod.isNative(); }
@Override public CallConfiguration getCallConfig() { if (compiledMethod == null) initializeMethod(); return compiledMethod.getCallConfig(); }
public static DynamicMethod newJittedMethod( Ruby runtime, RubyModule container, StaticScope scope, Script script, String name, CallConfiguration config, Visibility visibility, Arity arity, ISourcePosition position, DefaultMethod defaultMethod) { if (RubyInstanceConfig.FULL_TRACE_ENABLED) { return new TraceableJittedMethod(container, scope, script, name, config, visibility, arity, position, defaultMethod); } else { return new JittedMethod(container, scope, script, name, config, visibility, arity, position, defaultMethod); } } }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, Block block) { if (box.callCount >= 0) { return tryJitReturnMethod(context).call(context, self, clazz, name, arg0, block); } return box.actualMethod.call(context, self, clazz, name, arg0, block); } @Override
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) { if (compiledMethod == null) initializeMethod(); return compiledMethod.call(context, self, clazz, name, args); }
@Override public Visibility getVisibility() { if (compiledMethod == null) initializeMethod(); return compiledMethod.getVisibility(); }
@Override public CallConfiguration getCallConfig() { if (compiledMethod == null) initializeMethod(); return compiledMethod.getCallConfig(); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, Block block) { if (box.callCount >= 0) { return tryJitReturnMethod(context).call(context, self, clazz, name, arg0, arg1, block); } return box.actualMethod.call(context, self, clazz, name, arg0, arg1, block); } @Override
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) { if (compiledMethod == null) initializeMethod(); return compiledMethod.call(context, self, clazz, name, args, block); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) { if (box.callCount >= 0) { return tryJitReturnMethod(context).call(context, self, clazz, name, arg0, arg1, arg2); } return box.actualMethod.call(context, self, clazz, name , arg0, arg1, arg2); } @Override
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1) { if (compiledMethod == null) initializeMethod(); return compiledMethod.call(context, self, clazz, name, arg0, arg1); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) { if (box.callCount >= 0) { return tryJitReturnMethod(context).call(context, self, clazz, name, args, block); } return box.actualMethod.call(context, self, clazz, name, args, block); }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, Block block) { if (box.callCount >= 0) { return tryJitReturnMethod(context).call(context, self, clazz, name, arg0, arg1, block); } return box.actualMethod.call(context, self, clazz, name, arg0, arg1, block); } @Override