/usr/lib/ruby/vendor_ruby/gir_ffi/info_ext/i_signal_info.rb is in ruby-gir-ffi 0.9.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | module GirFFI
module InfoExt
# Extensions for GObjectIntrospection::ISignalInfo needed by GirFFI
module ISignalInfo
# Create a signal hander closure. Wraps the given block in a custom
# descendent of RubyClosure with a marshaller tailored for this signal.
#
# @param block The body of the signal handler
#
# @return [GObject::RubyClosure] The signal handler closure, ready to be
# passed as a GClosure to C.
def wrap_in_closure(&block)
bldr = Builders::SignalClosureBuilder.new(self)
bldr.build_class.new(&block)
end
def arguments_to_gvalues(instance, arguments)
arg_g_values = args.map { |info| info.argument_type.make_g_value }
arg_g_values.zip(arguments).each do |g_value, arg|
g_value.set_value arg
end
arg_g_values.unshift GObject::Value.wrap_instance(instance)
end
def gvalue_for_return_value
return_type.make_g_value
end
end
end
end
GObjectIntrospection::ISignalInfo.send :include, GirFFI::InfoExt::ISignalInfo
|