method
bind_function
v2_1_10 -
Show latest stable
- Class:
DL::Importer
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