method

bind_function

Importance_0
v2_1_10 - Show latest stable - 0 notes - Class: Importer
bind_function(name, ctype, argtype, call_type = nil, &block) public

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# 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
Register or log in to add new notes.