Sha256: bdb6700a6c6f10c2327510ffedaa7c3ef5896bbbe14cadd046dfd01a168cb4d7

Contents?: true

Size: 815 Bytes

Versions: 11

Compression:

Stored size: 815 Bytes

Contents

# frozen_string_literal: true

module GirFFI
  module FFIExt
    # Extensions to FFI::Pointer
    module Pointer
      def to_ptr
        self
      end

      # FIXME: Should probably not be here.
      def to_object
        return nil if null?

        gtype = GObject.type_from_instance_pointer self
        Builder.build_by_gtype(gtype).direct_wrap self
      end

      def to_utf8
        null? ? nil : read_string.force_encoding("utf-8")
      end
    end
  end
end

FFI::Pointer.prepend GirFFI::FFIExt::Pointer

FFI::Pointer.class_eval do
  size_t_getter = case FFI.type_size(:size_t)
                  when 4
                    :get_uint32
                  when 8
                    :get_uint64
                  end

  alias_method :get_size_t, size_t_getter
  alias_method :get_gtype, :get_size_t
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
gir_ffi-0.16.0 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.9 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.8 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.7 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.6 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.5 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.4 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.3 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.2 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.1 lib/gir_ffi/ffi_ext/pointer.rb
gir_ffi-0.15.0 lib/gir_ffi/ffi_ext/pointer.rb