class GirFFI::Builders::VFuncArgumentBuilder

Convertor for arguments for vfuncs. Used when building the argument mapper for vfuncs.

Public Instance Methods

pre_conversion() click to toggle source
# File lib/gir_ffi/builders/vfunc_argument_builder.rb, line 8
def pre_conversion
  if ingoing_ref_needed
    super + [pre_ref_count_increase]
  else
    super
  end
end

Private Instance Methods

ingoing_ref_needed() click to toggle source
# File lib/gir_ffi/builders/vfunc_argument_builder.rb, line 18
def ingoing_ref_needed
  direction == :in &&
    ownership_transfer == :nothing &&
    specialized_type_tag == :object
end
outgoing_ref_needed() click to toggle source
# File lib/gir_ffi/builders/vfunc_argument_builder.rb, line 37
def outgoing_ref_needed
  direction == :out &&
    ownership_transfer == :everything &&
    specialized_type_tag == :object
end
post_convertor_argument() click to toggle source

SMELL: Override private method

# File lib/gir_ffi/builders/vfunc_argument_builder.rb, line 29
def post_convertor_argument
  if outgoing_ref_needed
    "#{super}.ref"
  else
    super
  end
end
pre_ref_count_increase() click to toggle source
# File lib/gir_ffi/builders/vfunc_argument_builder.rb, line 24
def pre_ref_count_increase
  "#{pre_converted_name}.ref"
end