Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jruby.internal.runtime.methods;
  
 
 
 public class CompiledIRMethod extends DynamicMethod implements PositionAware {
     private static final Logger LOG = LoggerFactory.getLogger("CompiledIRMethod");
 
     private final MethodHandle method;
     private final String name;
     private final String file;
     private final int line;
     private final StaticScope scope;
     private Arity arity;
     boolean displayedCFG = false// FIXME: Remove when we find nicer way of logging CFG
 
     public CompiledIRMethod(MethodHandle methodString nameString fileint lineStaticScope scopeVisibility visibilityRubyModule implementationClass) {
         super(implementationClassvisibility.);
         this. = method;
         this. = name;
         this. = file;
         this. = line;
         this. = scope;
         this. = calculateArity();
 
         setHandle(method);
     }
 
     private Arity calculateArity() {
         StaticScope s = ;
         if (s.getOptionalArgs() > 0 || s.getRestArg() >= 0) return Arity.required(s.getRequiredArgs());
 
         return Arity.createArity(s.getRequiredArgs());
     }
 
     @Override
     public Arity getArity() {
         return this.;
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject[] argsBlock block) {
         if (IRRuntimeHelpers.isDebug()) {
             // FIXME: name should probably not be "" ever.
             String realName = name == null || "".equals(name) ? this. : name;
             .info("Executing '" + realName + "'");
         }
 
         try {
             // update call stacks (push: frame, class, scope, etc.)
             RubyModule implementationClass = getImplementationClass();
             context.preMethodFrameAndScope(implementationClassnameselfblock);
             context.setCurrentVisibility(getVisibility());
             return (IRubyObject)this..invokeWithArguments(contextselfargsblock);
         } catch (Throwable t) {
             Helpers.throwException(t);
             // not reached
             return null;
         } finally {
             // update call stacks (pop: ..)
             context.popFrame();
             context.postMethodScopeOnly();
         }
     }
 
     @Override
     public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameBlock block) {
         if (IRRuntimeHelpers.isDebug()) {
             // FIXME: name should probably not be "" ever.
             String realName = name == null || "".equals(name) ? this. : name;
             .info("Executing '" + realName + "'");
         }
 
         try {
             // update call stacks (push: frame, class, scope, etc.)
             RubyModule implementationClass = getImplementationClass();
             context.preMethodFrameAndScope(implementationClassnameselfblock);
             context.setCurrentVisibility(getVisibility());
             return (IRubyObject)this..invokeWithArguments(contextselfblock);
         } catch (Throwable t) {
             Helpers.throwException(t);
             // not reached
             return null;
         } finally {
             // update call stacks (pop: ..)
             context.popFrame();
             context.postMethodScopeOnly();
        }
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0Block block) {
        if (IRRuntimeHelpers.isDebug()) {
            // FIXME: name should probably not be "" ever.
            String realName = name == null || "".equals(name) ? this. : name;
            .info("Executing '" + realName + "'");
        }
        try {
            // update call stacks (push: frame, class, scope, etc.)
            RubyModule implementationClass = getImplementationClass();
            context.preMethodFrameAndScope(implementationClassnameselfblock);
            context.setCurrentVisibility(getVisibility());
            return (IRubyObject)this..invokeWithArguments(contextselfarg0block);
        } catch (Throwable t) {
            Helpers.throwException(t);
            // not reached
            return null;
        } finally {
            // update call stacks (pop: ..)
            context.popFrame();
            context.postMethodScopeOnly();
        }
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0IRubyObject arg1Block block) {
        if (IRRuntimeHelpers.isDebug()) {
            // FIXME: name should probably not be "" ever.
            String realName = name == null || "".equals(name) ? this. : name;
            .info("Executing '" + realName + "'");
        }
        try {
            // update call stacks (push: frame, class, scope, etc.)
            RubyModule implementationClass = getImplementationClass();
            context.preMethodFrameAndScope(implementationClassnameselfblock);
            context.setCurrentVisibility(getVisibility());
            return (IRubyObject)this..invokeWithArguments(contextselfarg0arg1block);
        } catch (Throwable t) {
            Helpers.throwException(t);
            // not reached
            return null;
        } finally {
            // update call stacks (pop: ..)
            context.popFrame();
            context.postMethodScopeOnly();
        }
    }
    @Override
    public IRubyObject call(ThreadContext contextIRubyObject selfRubyModule clazzString nameIRubyObject arg0IRubyObject arg1IRubyObject arg2Block block) {
        if (IRRuntimeHelpers.isDebug()) {
            // FIXME: name should probably not be "" ever.
            String realName = name == null || "".equals(name) ? this. : name;
            .info("Executing '" + realName + "'");
        }
        try {
            // update call stacks (push: frame, class, scope, etc.)
            RubyModule implementationClass = getImplementationClass();
            context.preMethodFrameAndScope(implementationClassnameselfblock);
            context.setCurrentVisibility(getVisibility());
            return (IRubyObject)this..invokeWithArguments(contextselfarg0arg1arg2block);
        } catch (Throwable t) {
            Helpers.throwException(t);
            // not reached
            return null;
        } finally {
            // update call stacks (pop: ..)
            context.popFrame();
            context.postMethodScopeOnly();
        }
    }
    @Override
    public DynamicMethod dup() {
        return new CompiledIRMethod();
    }
    public String getFile() {
        return ;
    }
    public int getLine() {
        return ;
	}
    public StaticScope getStaticScope() {
        return ;
    }
New to GrepCode? Check out our FAQ X