Class InterpretedIRMethod
java.lang.Object
org.jruby.internal.runtime.methods.DynamicMethod
org.jruby.internal.runtime.AbstractIRMethod
org.jruby.internal.runtime.methods.InterpretedIRMethod
- All Implemented Interfaces:
Cloneable,Compilable<InterpreterContext>,IRMethodArgs,PositionAware
- Direct Known Subclasses:
InterpretedIRBodyMethod
Method for -X-C (interpreted only execution). See MixedModeIRMethod for
inter/JIT method impl.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jruby.internal.runtime.methods.DynamicMethod
DynamicMethod.NativeCall, DynamicMethod.Version -
Field Summary
FieldsFields inherited from class org.jruby.internal.runtime.AbstractIRMethod
callCount, interpreterContext, line, method, signature, staticScopeFields inherited from class org.jruby.internal.runtime.methods.DynamicMethod
definedClass, flags, handle, implementationClass, name, protectedClass, serialNumber -
Constructor Summary
ConstructorsConstructorDescriptionInterpretedIRMethod(IRScope method, Visibility visibility, RubyModule implementationClass) -
Method Summary
Modifier and TypeMethodDescriptioncall(ThreadContext context, IRubyObject self, RubyModule clazz, String name) Arity 0, no blockcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, Block block) Arity 0, with block; calls through IRubyObject[] pathcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0) Arity 1, no blockcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) A default implementation of n-arity, non-block 'call' method, which simply calls the n-arity, block-receiving version with the arg list and Block.NULL_BLOCK.call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) The minimum 'call' method required for a dynamic method handle.call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, Block block) Arity 1, with block; calls through IRubyObject[] pathcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1) Arity 2, no blockcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, Block block) Arity 2, with block; calls through IRubyObject[] pathcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) Arity 3, no blockcall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block) Arity 3, with block; calls through IRubyObject[] pathvoidcompleteBuild(InterpreterContext interpreterContext) protected voiddoDebug()voidfinishSplitCall(SplitSuperState state) getClassName(ThreadContext context) Deprecated.private ExitableReturnINTERPRET_METHOD(MethodSplitState state, IRubyObject[] args, Block block) private IRubyObjectINTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, Block block) private IRubyObjectINTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject[] args, Block block) private IRubyObjectINTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject arg1, Block block) private IRubyObjectINTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject arg1, IRubyObject arg2, Block block) private IRubyObjectINTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block) protected voidpost(InterpreterContext ic, ThreadContext context) protected voidpre(InterpreterContext ic, ThreadContext context, IRubyObject self, String name, Block block, RubyModule implClass) protected voidpreSplit(InterpreterContext ic, ThreadContext context, IRubyObject self, String name, Block block, RubyModule implClass, DynamicScope scope) protected voidprivate voidpromoteToFullBuild(ThreadContext context) startSplitSuperCall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) Calls a split method (java constructor-invoked initialize) and returns the paused state.Methods inherited from class org.jruby.internal.runtime.AbstractIRMethod
clone, dup, ensureInstrsReady, getArgumentDescriptors, getArity, getFile, getInstanceVariableNames, getIRScope, getLine, getMethodData, getSignature, getStaticScope, needsToFindImplementer, setCallCount, toString, tryJitMethods inherited from class org.jruby.internal.runtime.methods.DynamicMethod
calculateProtectedClass, callRespondTo, getCallConfig, getDefinedClass, getHandle, getImplementationClass, getName, getProtectedClass, getRealMethod, getSerialNumber, getVisibility, init, init, isBuiltin, isCallableFrom, isImplementedBy, isNative, isNotImplemented, isNull, isRefined, isUndefined, setCallConfig, setDefinedClass, setHandle, setImplementationClass, setIsBuiltin, setNotImplemented, setVisibilityMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.jruby.compiler.Compilable
ensureInstrsReady, getFile, getImplementationClass, getIRScope, getLine, getName, getOwnerName, setCallCount
-
Field Details
-
LOG
-
displayedCFG
private boolean displayedCFG
-
-
Constructor Details
-
InterpretedIRMethod
-
-
Method Details
-
post
-
pre
protected void pre(InterpreterContext ic, ThreadContext context, IRubyObject self, String name, Block block, RubyModule implClass) -
preSplit
protected void preSplit(InterpreterContext ic, ThreadContext context, IRubyObject self, String name, Block block, RubyModule implClass, DynamicScope scope) -
printMethodIR
protected void printMethodIR()- Specified by:
printMethodIRin classAbstractIRMethod
-
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) Description copied from class:DynamicMethodThe minimum 'call' method required for a dynamic method handle. Subclasses must implement this method, but may implement the other signatures to provide faster, non-boxing call paths. Typically subclasses will implement this method to check variable arity calls, then performing a specific-arity invocation to the appropriate method or performing variable-arity logic in-line.- Specified by:
callin classDynamicMethod- Parameters:
context- The thread context for the currently executing threadself- The 'self' or 'receiver' object to use for this callclazz- The Ruby class against which this method is bindingname- The incoming name used to invoke this methodargs- The argument list to this invocationblock- The block passed to this invocation- Returns:
- The result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) Description copied from class:DynamicMethodA default implementation of n-arity, non-block 'call' method, which simply calls the n-arity, block-receiving version with the arg list and Block.NULL_BLOCK.- Overrides:
callin classDynamicMethod- Parameters:
context- The thread context for the currently executing threadself- The 'self' or 'receiver' object to use for this callclazz- The Ruby class against which this method is bindingname- The incoming name used to invoke this methodargs- The first argument to this invocation- Returns:
- The result of the call
-
INTERPRET_METHOD
private IRubyObject INTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject[] args, Block block) -
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, Block block) Description copied from class:DynamicMethodArity 0, with block; calls through IRubyObject[] path- Overrides:
callin classDynamicMethod
-
call
Description copied from class:DynamicMethodArity 0, no block- Overrides:
callin classDynamicMethod
-
INTERPRET_METHOD
private IRubyObject INTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, Block block) -
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, Block block) Description copied from class:DynamicMethodArity 1, with block; calls through IRubyObject[] path- Overrides:
callin classDynamicMethod
-
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0) Description copied from class:DynamicMethodArity 1, no block- Overrides:
callin classDynamicMethod
-
INTERPRET_METHOD
private IRubyObject INTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject arg1, Block block) -
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, Block block) Description copied from class:DynamicMethodArity 2, with block; calls through IRubyObject[] path- Overrides:
callin classDynamicMethod
-
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1) Description copied from class:DynamicMethodArity 2, no block- Overrides:
callin classDynamicMethod
-
INTERPRET_METHOD
private IRubyObject INTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject arg1, IRubyObject arg2, Block block) -
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block) Description copied from class:DynamicMethodArity 3, with block; calls through IRubyObject[] path- Overrides:
callin classDynamicMethod
-
call
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) Description copied from class:DynamicMethodArity 3, no block- Overrides:
callin classDynamicMethod
-
INTERPRET_METHOD
private IRubyObject INTERPRET_METHOD(ThreadContext context, InterpreterContext ic, RubyModule implClass, IRubyObject self, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block) -
startSplitSuperCall
public SplitSuperState<MethodSplitState> startSplitSuperCall(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block) Description copied from class:AbstractIRMethodCalls a split method (java constructor-invoked initialize) and returns the paused state. If this method doesn't have a super call, returns null without execution.- Specified by:
startSplitSuperCallin classAbstractIRMethod
-
INTERPRET_METHOD
-
finishSplitCall
- Specified by:
finishSplitCallin classAbstractIRMethod
-
doDebug
protected void doDebug() -
completeBuild
- Specified by:
completeBuildin interfaceCompilable<InterpreterContext>
-
promoteToFullBuild
-
getClassName
Deprecated.- Specified by:
getClassNamein interfaceCompilable<InterpreterContext>
-