Class DefaultMethod

All Implemented Interfaces:
CacheableMethod

public class DefaultMethod extends DynamicMethod implements CacheableMethod
  • Field Details

    • DEBUG

      public static final boolean DEBUG
    • REIFY

      public static final boolean REIFY
    • signature

      protected final org.jruby.ext.ffi.jffi.Signature signature
    • arity

      protected final Arity arity
    • function

      protected final com.kenai.jffi.Function function
  • Constructor Details

    • DefaultMethod

      public DefaultMethod(RubyModule implementationClass, com.kenai.jffi.Function function, org.jruby.ext.ffi.jffi.Signature signature, NativeInvoker defaultInvoker)
  • Method Details

    • dup

      public final DynamicMethod dup()
      Description copied from class: DynamicMethod
      Duplicate this method, returning DynamicMethod referencing the same code and with the same attributes. It is not required that this method produce a new object if the semantics of the DynamicMethod subtype do not require such.
      Specified by:
      dup in class DynamicMethod
      Returns:
      An identical DynamicMethod object to the target.
    • getArity

      @Deprecated public final Arity getArity()
      Deprecated.
      Description copied from class: DynamicMethod
      Retrieve the arity of this method, used for reporting arity to Ruby code. This arity may or may not reflect the actual specific or variable arities of the referenced method.
      Overrides:
      getArity in class DynamicMethod
      Returns:
      The arity of the method, as reported to Ruby consumers.
    • isNative

      public final boolean isNative()
      Description copied from class: DynamicMethod
      Returns true if this method is backed by native (i.e. Java) code.
      Overrides:
      isNative in class DynamicMethod
      Returns:
      true If backed by Java code or JVM bytecode; false otherwise
    • getMethodForCaching

      public DynamicMethod getMethodForCaching()
      Specified by:
      getMethodForCaching in interface CacheableMethod
    • getNativeInvoker

      @Deprecated protected final NativeInvoker getNativeInvoker()
      Deprecated.
    • getNativeInvoker

      protected final NativeInvoker getNativeInvoker(ThreadContext context)
    • call

      public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args)
      Description copied from class: DynamicMethod
      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.
      Overrides:
      call in class DynamicMethod
      Parameters:
      context - The thread context for the currently executing thread
      self - The 'self' or 'receiver' object to use for this call
      clazz - The Ruby class against which this method is binding
      name - The incoming name used to invoke this method
      args - The first argument to this invocation
      Returns:
      The result of the call
    • call

      public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block)
      Description copied from class: DynamicMethod
      The 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:
      call in class DynamicMethod
      Parameters:
      context - The thread context for the currently executing thread
      self - The 'self' or 'receiver' object to use for this call
      clazz - The Ruby class against which this method is binding
      name - The incoming name used to invoke this method
      args - The argument list to this invocation
      block - The block passed to this invocation
      Returns:
      The result of the call
    • forceCompilation

      public final NativeInvoker forceCompilation()