Sha256: 830cc065ab0e390ede8bda07983987f37fba5b943dd130731761bf513e3e6bb4

Contents?: true

Size: 751 Bytes

Versions: 4

Compression:

Stored size: 751 Bytes

Contents

require 'gir_ffi/builder_helper'

module GirFFI
  module InfoExt
    module ITypeInfo
      include BuilderHelper

      def layout_specification_type
        ffitype = GirFFI::Builder.itypeinfo_to_ffitype self
        case ffitype
        when Class
          ffitype.const_get :Struct
        when :bool
          :int
        when :array
          subtype = param_type(0).layout_specification_type
          # XXX Don't use pointer directly to appease JRuby.
          if subtype == :pointer
            subtype = :"uint#{FFI.type_size(:pointer)*8}"
          end
          [subtype, array_fixed_size]
        else
          ffitype
        end
      end
    end
  end
end

GObjectIntrospection::ITypeInfo.send :include, GirFFI::InfoExt::ITypeInfo

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gir_ffi-0.4.0 lib/gir_ffi/info_ext/i_type_info.rb
gir_ffi-0.3.2 lib/gir_ffi/info_ext/i_type_info.rb
gir_ffi-0.3.1 lib/gir_ffi/info_ext/i_type_info.rb
gir_ffi-0.3.0 lib/gir_ffi/info_ext/i_type_info.rb