method

bind_function

ruby latest stable - Class: DL::Importer

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v2_1_10) is shown here.

bind_function(name, ctype, argtype, call_type = nil, &block)
public

No documentation available.

# File ext/dl/lib/dl/import.rb, line 244
    def bind_function(name, ctype, argtype, call_type = nil, &block)
      if DL.fiddle?
        klass = Function.instance_eval { class_fiddle_closure_cfunc }
        abi = Function.instance_eval { call_type_to_abi(call_type) }
        closure = Class.new(klass) {
          define_method(:call, block)
        }.new(ctype, argtype, abi, name)

        Function.new(closure, argtype, abi)
      else
        f = Function.new(CFunc.new(0, ctype, name, call_type || :cdecl), argtype)
        f.bind(&block)
        f
      end
    end