def invoke(return_value, param_values)
      rval = Value.from(return_value)
      n_params = param_values.length
      params = GirFFI::SizedArray.from(Value, -1, param_values)
      Lib.g_closure_invoke self, rval, n_params, params, nil
      rval.get_value
    end
def invoke(return_value, param_values)
      rval = Value.from(return_value)
      n_params = param_values.length
      params = GirFFI::SizedArray.from(Value, -1, param_values)
      Lib.g_closure_invoke self, rval, n_params, params, nil
      rval.get_value
    end
@override

 This override of invoke ensures the return value location can be passed
 in as the first argument, which is needed to ensure the GValue is
 initialized with the proper type.

 @param [GObject::Value] return_value The GValue to store the return
   value, or nil if no return value is expected.
 @param [Array] param_values the closure parameters.