summaryrefslogtreecommitdiff
path: root/lib/ffi/variadic.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ffi/variadic.rb')
-rw-r--r--lib/ffi/variadic.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/ffi/variadic.rb b/lib/ffi/variadic.rb
index 800d121..246b52f 100644
--- a/lib/ffi/variadic.rb
+++ b/lib/ffi/variadic.rb
@@ -54,11 +54,12 @@ module FFI
invoker = self
params = "*args"
call = "call"
- mod.module_eval <<-code
- @ffi_function_#{mname} = invoker
+ mod.module_eval <<-code, __FILE__, __LINE__
+ @ffi_functions = {} unless defined?(@ffi_functions)
+ @ffi_functions[#{mname.inspect}] = invoker
def self.#{mname}(#{params})
- @ffi_function_#{mname}.#{call}(#{params})
+ @ffi_functions[#{mname.inspect}].#{call}(#{params})
end
define_method(#{mname.inspect}, &method(:#{mname}))