gir_ffi 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +10 -0
  3. data/lib/ffi-glib/array.rb +2 -2
  4. data/lib/ffi-glib/array_methods.rb +1 -0
  5. data/lib/ffi-glib/list_methods.rb +3 -2
  6. data/lib/ffi-glib/main_loop.rb +2 -0
  7. data/lib/ffi-glib/ptr_array.rb +2 -2
  8. data/lib/ffi-gobject.rb +3 -11
  9. data/lib/ffi-gobject/closure.rb +1 -0
  10. data/lib/ffi-gobject/object.rb +30 -16
  11. data/lib/ffi-gobject/object_class.rb +2 -2
  12. data/lib/ffi-gobject/ruby_closure.rb +2 -2
  13. data/lib/ffi-gobject/value.rb +2 -1
  14. data/lib/ffi-gobject_introspection/i_arg_info.rb +11 -11
  15. data/lib/ffi-gobject_introspection/i_base_info.rb +12 -10
  16. data/lib/ffi-gobject_introspection/i_callable_info.rb +8 -8
  17. data/lib/ffi-gobject_introspection/i_enum_info.rb +5 -5
  18. data/lib/ffi-gobject_introspection/i_field_info.rb +4 -4
  19. data/lib/ffi-gobject_introspection/i_function_info.rb +2 -2
  20. data/lib/ffi-gobject_introspection/i_interface_info.rb +15 -15
  21. data/lib/ffi-gobject_introspection/i_object_info.rb +22 -22
  22. data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
  23. data/lib/ffi-gobject_introspection/i_registered_type_info.rb +3 -3
  24. data/lib/ffi-gobject_introspection/i_repository.rb +16 -10
  25. data/lib/ffi-gobject_introspection/i_struct_info.rb +11 -7
  26. data/lib/ffi-gobject_introspection/i_type_info.rb +8 -8
  27. data/lib/ffi-gobject_introspection/i_union_info.rb +7 -7
  28. data/lib/ffi-gobject_introspection/i_value_info.rb +1 -1
  29. data/lib/ffi-gobject_introspection/strv.rb +1 -0
  30. data/lib/gir_ffi-base/gobject.rb +5 -0
  31. data/lib/gir_ffi-base/gobject/lib.rb +4 -0
  32. data/lib/gir_ffi/boolean.rb +2 -2
  33. data/lib/gir_ffi/builders/argument_builder.rb +41 -14
  34. data/lib/gir_ffi/builders/argument_builder_collection.rb +17 -4
  35. data/lib/gir_ffi/builders/base_argument_builder.rb +12 -16
  36. data/lib/gir_ffi/builders/callback_argument_builder.rb +1 -1
  37. data/lib/gir_ffi/builders/callback_builder.rb +1 -1
  38. data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +2 -9
  39. data/lib/gir_ffi/builders/field_builder.rb +11 -9
  40. data/lib/gir_ffi/builders/module_builder.rb +2 -1
  41. data/lib/gir_ffi/builders/object_builder.rb +21 -12
  42. data/lib/gir_ffi/builders/pointer_value_convertor.rb +8 -6
  43. data/lib/gir_ffi/builders/property_builder.rb +4 -2
  44. data/lib/gir_ffi/builders/registered_type_builder.rb +30 -19
  45. data/lib/gir_ffi/builders/return_value_builder.rb +2 -2
  46. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +2 -0
  47. data/lib/gir_ffi/builders/signal_closure_builder.rb +1 -1
  48. data/lib/gir_ffi/builders/struct_builder.rb +7 -8
  49. data/lib/gir_ffi/builders/unintrospectable_builder.rb +4 -1
  50. data/lib/gir_ffi/builders/user_defined_builder.rb +31 -95
  51. data/lib/gir_ffi/builders/vfunc_builder.rb +1 -1
  52. data/lib/gir_ffi/builders/with_layout.rb +3 -1
  53. data/lib/gir_ffi/callback_base.rb +3 -2
  54. data/lib/gir_ffi/class_base.rb +5 -0
  55. data/lib/gir_ffi/enum_like_base.rb +9 -5
  56. data/lib/gir_ffi/error_argument_info.rb +1 -1
  57. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -4
  58. data/lib/gir_ffi/field_argument_info.rb +1 -1
  59. data/lib/gir_ffi/in_pointer.rb +36 -23
  60. data/lib/gir_ffi/info_ext/i_arg_info.rb +2 -0
  61. data/lib/gir_ffi/info_ext/i_callback_info.rb +4 -0
  62. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -0
  63. data/lib/gir_ffi/info_ext/i_type_info.rb +3 -27
  64. data/lib/gir_ffi/info_ext/safe_function_name.rb +1 -0
  65. data/lib/gir_ffi/interface_base.rb +5 -0
  66. data/lib/gir_ffi/module_base.rb +1 -0
  67. data/lib/gir_ffi/object_base.rb +10 -0
  68. data/lib/gir_ffi/object_store.rb +2 -0
  69. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  70. data/lib/gir_ffi/return_value_info.rb +1 -1
  71. data/lib/gir_ffi/sized_array.rb +7 -14
  72. data/lib/gir_ffi/struct_like_base.rb +3 -0
  73. data/lib/gir_ffi/type_map.rb +21 -0
  74. data/lib/gir_ffi/user_defined_object_info.rb +6 -2
  75. data/lib/gir_ffi/user_defined_property_info.rb +113 -71
  76. data/lib/gir_ffi/version.rb +1 -1
  77. data/lib/gir_ffi/zero_terminated.rb +26 -1
  78. data/tasks/test.rake +1 -0
  79. data/test/ffi-gobject_introspection/i_repository_test.rb +1 -2
  80. data/test/gir_ffi/builder_test.rb +13 -7
  81. data/test/gir_ffi/builders/argument_builder_test.rb +1 -5
  82. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +1 -1
  83. data/test/gir_ffi/builders/field_builder_test.rb +20 -20
  84. data/test/gir_ffi/builders/return_value_builder_test.rb +1 -1
  85. data/test/gir_ffi/builders/signal_closure_builder_test.rb +1 -1
  86. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +1 -1
  87. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +2 -2
  88. data/test/gir_ffi/builders/vfunc_builder_test.rb +1 -1
  89. data/test/gir_ffi/enum_base_test.rb +43 -0
  90. data/test/gir_ffi/info_ext/i_type_info_test.rb +3 -9
  91. data/test/gir_ffi/object_base_test.rb +30 -0
  92. data/test/gir_ffi/sized_array_test.rb +0 -9
  93. data/test/gir_ffi/user_defined_object_info_test.rb +4 -6
  94. data/test/gir_ffi/user_defined_property_info_test.rb +6 -5
  95. data/test/gir_ffi/zero_terminated_test.rb +22 -0
  96. data/test/gir_ffi_test_helper.rb +2 -0
  97. data/test/integration/generated_gimarshallingtests_test.rb +1 -0
  98. data/test/integration/generated_gio_test.rb +5 -6
  99. data/test/integration/generated_gobject_test.rb +1 -1
  100. data/test/integration/generated_gtop_test.rb +3 -1
  101. data/test/integration/generated_regress_test.rb +3 -4
  102. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2772619a7c65c8eb17f50aa252f89620d8965474b8c6d27717187cbfc003201a
4
- data.tar.gz: 317b202f4b97d93b4c12fa21ce22e7d1971e34ba10fd434ec9b6dcc4bf4bd214
3
+ metadata.gz: 9c2f74f548641ffd8518e7be3b8de0be2d09543f6a7267e796084567972d6c72
4
+ data.tar.gz: c1f84384a10427655b5907fc342c1690079acae27b076a118d743bb203b3f51c
5
5
  SHA512:
6
- metadata.gz: 8bef86f44195465dae96b1b3adb36e21c92c88be7555732624c4819f3b99a48b2837fabcfec786f525d6dbf12694d76005a2ead9f4d350e5c84ac1e94374bc6d
7
- data.tar.gz: bfdcfda1e4c237289887289dc51355ec1bce224ae126ec7b665e10c98dc18547a89e488c807025197291d8d76cd099d3c609872679ff74c6243f1e32a5881991
6
+ metadata.gz: e86e854c330672615eba303d0a34ce912d3766d74d7805a7e872dd5c7f0ddb13288ebb9be3b6293dbfc264d0c4d3013a0e2485aba3656511755e51f6bf5d1240
7
+ data.tar.gz: 6722a19e4232c8ace606d2dc86fec59d5a8c4a3cdec88ea1bf86884897e514cade46b71b04cfc66ee19f901c36e08515288fa56becd6dbd720c5e51dccba8093
data/Changelog.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.1 / 2018-09-24
4
+
5
+ * Silence some warnings.
6
+ * Allow overrides to be applied using `Module#prepend`, as an alternative to
7
+ alias chaining.
8
+ * Make `ZeroTerminated` array work with enum elements.
9
+ * Various refactorings.
10
+ * Improve consistency of conversion between symbols and integers for enum
11
+ types.
12
+
3
13
  ## 0.13.0 / 2018-09-08
4
14
 
5
15
  * Drop support for Ruby 2.1
@@ -46,7 +46,7 @@ module GLib
46
46
  end
47
47
 
48
48
  def length
49
- @struct[:len]
49
+ struct[:len]
50
50
  end
51
51
 
52
52
  def get_element_size
@@ -73,7 +73,7 @@ module GLib
73
73
  private
74
74
 
75
75
  def data_ptr
76
- @struct[:data]
76
+ struct[:data]
77
77
  end
78
78
 
79
79
  def calculated_element_size
@@ -8,6 +8,7 @@ module GLib
8
8
  unless (0...length).cover? idx
9
9
  raise IndexError, "Index #{idx} outside of bounds 0..#{length - 1}"
10
10
  end
11
+
11
12
  ptr = GirFFI::InOutPointer.new element_type, data_ptr + idx * element_size
12
13
  ptr.to_ruby_value
13
14
  end
@@ -36,11 +36,11 @@ module GLib
36
36
  end
37
37
 
38
38
  def tail
39
- self.class.wrap(element_type, @struct[:next])
39
+ self.class.wrap(element_type, struct[:next])
40
40
  end
41
41
 
42
42
  def head
43
- GirFFI::ArgHelper.cast_from_pointer(element_type, @struct[:data])
43
+ GirFFI::ArgHelper.cast_from_pointer(element_type, struct[:data])
44
44
  end
45
45
 
46
46
  def reset_typespec(typespec)
@@ -60,6 +60,7 @@ module GLib
60
60
 
61
61
  def next_element
62
62
  return unless @current
63
+
63
64
  element = @current.head
64
65
  @current = @current.tail
65
66
  element
@@ -46,12 +46,14 @@ module GLib
46
46
  exception = EXCEPTIONS.shift
47
47
  RUNNING_LOOPS.pop
48
48
  raise exception if exception
49
+
49
50
  result
50
51
  end
51
52
 
52
53
  def self.handle_exception(exception)
53
54
  current_loop = RUNNING_LOOPS.last
54
55
  raise exception unless current_loop
56
+
55
57
  EXCEPTIONS << exception
56
58
  current_loop.quit
57
59
  end
@@ -50,7 +50,7 @@ module GLib
50
50
  end
51
51
 
52
52
  def data_ptr
53
- @struct[:pdata]
53
+ struct[:pdata]
54
54
  end
55
55
 
56
56
  def element_size
@@ -64,7 +64,7 @@ module GLib
64
64
  end
65
65
 
66
66
  def length
67
- @struct[:len]
67
+ struct[:len]
68
68
  end
69
69
 
70
70
  def ==(other)
data/lib/ffi-gobject.rb CHANGED
@@ -18,6 +18,7 @@ require 'gir_ffi/signal_not_found_error'
18
18
  module GObject
19
19
  def self.type_from_instance_pointer(inst_ptr)
20
20
  return nil if inst_ptr.null?
21
+
21
22
  klsptr = inst_ptr.get_pointer 0
22
23
  klsptr.get_gtype 0
23
24
  end
@@ -36,6 +37,7 @@ module GObject
36
37
 
37
38
  def self.object_class_from_instance_pointer(inst_ptr)
38
39
  return nil if inst_ptr.null?
40
+
39
41
  klsptr = inst_ptr.get_pointer 0
40
42
  ObjectClass.wrap klsptr
41
43
  end
@@ -62,6 +64,7 @@ module GObject
62
64
 
63
65
  def self.signal_connect(object, detailed_signal, data = nil, after = false, &block)
64
66
  raise ArgumentError, 'Block needed' unless block_given?
67
+
65
68
  signal_name, = detailed_signal.split('::')
66
69
  sig_info = object.class.find_signal signal_name
67
70
 
@@ -87,17 +90,11 @@ module GObject
87
90
  attach_function :g_object_ref_sink, [:pointer], :pointer
88
91
  attach_function :g_object_ref, [:pointer], :pointer
89
92
  attach_function :g_object_unref, [:pointer], :pointer
90
- attach_function :g_object_new, [:size_t, :pointer], :pointer
91
93
 
92
94
  attach_function :g_value_copy, [:pointer, :pointer], :void
93
95
  attach_function :g_value_init, [:pointer, :size_t], :pointer
94
96
  attach_function :g_value_unset, [:pointer], :pointer
95
97
 
96
- attach_function :g_array_get_type, [], :size_t
97
- attach_function :g_byte_array_get_type, [], :size_t
98
- attach_function :g_hash_table_get_type, [], :size_t
99
- attach_function :g_strv_get_type, [], :size_t
100
-
101
98
  attach_function :g_signal_connect_data,
102
99
  [:pointer, :string, Callback, :pointer, ClosureNotify, ConnectFlags],
103
100
  :ulong
@@ -112,9 +109,4 @@ module GObject
112
109
 
113
110
  attach_function :g_type_class_ref, [:size_t], :pointer
114
111
  end
115
-
116
- TYPE_ARRAY = Lib.g_array_get_type
117
- TYPE_BYTE_ARRAY = Lib.g_byte_array_get_type
118
- TYPE_HASH_TABLE = Lib.g_hash_table_get_type
119
- TYPE_STRV = Lib.g_strv_get_type
120
112
  end
@@ -9,6 +9,7 @@ module GObject
9
9
  class Closure
10
10
  setup_method! :new_simple
11
11
  setup_instance_method! :invoke
12
+ remove_method :invoke
12
13
 
13
14
  # @override
14
15
  #
@@ -12,36 +12,37 @@ module GObject
12
12
  [:size_t, :uint32, :pointer, :pointer],
13
13
  :pointer)
14
14
 
15
- def self.new(*args, &block)
15
+ def self.new_with_properties(*args, &block)
16
16
  obj = allocate
17
- obj.__send__ :initialize, *args, &block
17
+ obj.__send__ :initialize_with_properties, *args, &block
18
18
  obj
19
19
  end
20
20
 
21
21
  # Starting with GLib 2.54.0, use g_object_new_with_properties, which
22
22
  # takes an array of names and an array of values.
23
- def initialize(properties = {})
24
- names = []
25
- values = []
26
- properties.each do |name, value|
27
- name = name.to_s
28
- gvalue = gvalue_for_property(name)
29
- gvalue.set_value value
30
-
31
- names << name
32
- values << gvalue
33
- end
23
+ def initialize_with_properties(properties = {})
24
+ names, gvalues = names_and_gvalues_for_properties(properties)
34
25
 
35
26
  n_properties = names.length
36
27
  names_arr = GirFFI::SizedArray.from(:utf8, -1, names)
37
- values_arr = GirFFI::SizedArray.from(GObject::Value, -1, values)
28
+ gvalues_arr = GirFFI::SizedArray.from(GObject::Value, -1, gvalues)
38
29
 
39
30
  ptr = GObject::Lib.g_object_new_with_properties(self.class.gtype,
40
31
  n_properties,
41
32
  names_arr,
42
- values_arr)
33
+ gvalues_arr)
43
34
  store_pointer ptr
44
35
  end
36
+
37
+ alias old_initialze initialize
38
+ alias initialize initialize_with_properties
39
+ remove_method :old_initialze
40
+
41
+ def self.new(*args, &block)
42
+ obj = allocate
43
+ obj.__send__ :initialize, *args, &block
44
+ obj
45
+ end
45
46
  else
46
47
  setup_method! 'new'
47
48
 
@@ -81,7 +82,7 @@ module GObject
81
82
  def self.make_finalizer(ptr)
82
83
  proc do
83
84
  rc = GObject::Object::Struct.new(ptr)[:ref_count]
84
- if rc.zero?
85
+ if rc == 0
85
86
  warn "not unreffing #{name}:#{ptr} (#{rc})"
86
87
  else
87
88
  GObject::Lib.g_object_unref ptr
@@ -93,6 +94,7 @@ module GObject
93
94
  def method_missing(method, *args)
94
95
  getter_name = "get_#{method}"
95
96
  return send(getter_name, *args) if respond_to?(getter_name)
97
+
96
98
  if method.to_s =~ /(.*)=$/
97
99
  setter_name = "set_#{Regexp.last_match[1]}"
98
100
  return send(setter_name, *args) if respond_to?(setter_name)
@@ -150,6 +152,18 @@ module GObject
150
152
 
151
153
  private
152
154
 
155
+ def names_and_gvalues_for_properties(properties)
156
+ return [], [] unless properties.any?
157
+
158
+ properties.map do |name, value|
159
+ name = name.to_s
160
+ gvalue = gvalue_for_property(name)
161
+ gvalue.set_value value
162
+
163
+ [name, gvalue]
164
+ end.transpose
165
+ end
166
+
153
167
  def get_property_type(property_name)
154
168
  prop = self.class.find_property(property_name)
155
169
  prop.property_type
@@ -6,11 +6,11 @@ module GObject
6
6
  # Overrides for GObjectClass, a struct containing GObject's class data
7
7
  class ObjectClass
8
8
  def set_property=(callback)
9
- @struct[:set_property] = GObject::ObjectSetPropertyFunc.from callback
9
+ struct[:set_property] = GObject::ObjectSetPropertyFunc.from callback
10
10
  end
11
11
 
12
12
  def get_property=(callback)
13
- @struct[:get_property] = GObject::ObjectGetPropertyFunc.from callback
13
+ struct[:get_property] = GObject::ObjectGetPropertyFunc.from callback
14
14
  end
15
15
 
16
16
  def gtype
@@ -51,11 +51,11 @@ module GObject
51
51
  def block=(block)
52
52
  id = block.object_id
53
53
  BLOCK_STORE[id] = block
54
- @struct[:block_id] = id
54
+ struct[:block_id] = id
55
55
  end
56
56
 
57
57
  def block
58
- BLOCK_STORE[@struct[:block_id]]
58
+ BLOCK_STORE[struct[:block_id]]
59
59
  end
60
60
  end
61
61
  end
@@ -61,7 +61,7 @@ module GObject
61
61
  alias value= set_value
62
62
 
63
63
  def current_gtype
64
- @struct[:g_type]
64
+ struct[:g_type]
65
65
  end
66
66
 
67
67
  def current_fundamental_type
@@ -140,6 +140,7 @@ module GObject
140
140
 
141
141
  def init_for_ruby_value(val)
142
142
  return init val.class.gtype if val.class.respond_to? :gtype
143
+
143
144
  CLASS_TO_GTYPE_MAP.each do |klass, type|
144
145
  return init type if val.is_a? klass
145
146
  end
@@ -6,47 +6,47 @@ module GObjectIntrospection
6
6
  # Represents an argument.
7
7
  class IArgInfo < IBaseInfo
8
8
  def direction
9
- Lib.g_arg_info_get_direction @gobj
9
+ Lib.g_arg_info_get_direction self
10
10
  end
11
11
 
12
12
  def return_value?
13
- Lib.g_arg_info_is_return_value @gobj
13
+ Lib.g_arg_info_is_return_value self
14
14
  end
15
15
 
16
16
  def optional?
17
- Lib.g_arg_info_is_optional @gobj
17
+ Lib.g_arg_info_is_optional self
18
18
  end
19
19
 
20
20
  def caller_allocates?
21
- Lib.g_arg_info_is_caller_allocates @gobj
21
+ Lib.g_arg_info_is_caller_allocates self
22
22
  end
23
23
 
24
24
  def may_be_null?
25
- Lib.g_arg_info_may_be_null @gobj
25
+ Lib.g_arg_info_may_be_null self
26
26
  end
27
27
 
28
28
  def skip?
29
- Lib.g_arg_info_is_skip @gobj
29
+ Lib.g_arg_info_is_skip self
30
30
  end
31
31
 
32
32
  def ownership_transfer
33
- Lib.g_arg_info_get_ownership_transfer @gobj
33
+ Lib.g_arg_info_get_ownership_transfer self
34
34
  end
35
35
 
36
36
  def scope
37
- Lib.g_arg_info_get_scope @gobj
37
+ Lib.g_arg_info_get_scope self
38
38
  end
39
39
 
40
40
  def closure
41
- Lib.g_arg_info_get_closure @gobj
41
+ Lib.g_arg_info_get_closure self
42
42
  end
43
43
 
44
44
  def destroy
45
- Lib.g_arg_info_get_destroy @gobj
45
+ Lib.g_arg_info_get_destroy self
46
46
  end
47
47
 
48
48
  def argument_type
49
- ITypeInfo.wrap Lib.g_arg_info_get_type(@gobj)
49
+ ITypeInfo.wrap Lib.g_arg_info_get_type(self)
50
50
  end
51
51
  end
52
52
  end
@@ -9,16 +9,18 @@ module GObjectIntrospection
9
9
 
10
10
  ObjectSpace.define_finalizer self, self.class.make_finalizer(lib, ptr)
11
11
 
12
- @gobj = ptr
12
+ @pointer = ptr
13
13
  @lib = lib
14
14
  end
15
15
 
16
+ attr_reader :pointer
17
+
16
18
  def self.make_finalizer(lib, ptr)
17
19
  proc { lib.g_base_info_unref ptr }
18
20
  end
19
21
 
20
22
  def to_ptr
21
- @gobj
23
+ @pointer
22
24
  end
23
25
 
24
26
  # This is a helper method to construct a method returning an array, out
@@ -38,7 +40,7 @@ module GObjectIntrospection
38
40
  #
39
41
  def self.build_array_method(method, single = nil)
40
42
  method = method.to_s
41
- single ||= method.to_s[0..-2]
43
+ single ||= method[0..-2]
42
44
  count = method.sub(/^(get_)?/, '\\1n_')
43
45
  class_eval <<-CODE, __FILE__, __LINE__ + 1
44
46
  def #{method}
@@ -83,15 +85,15 @@ module GObjectIntrospection
83
85
  end
84
86
 
85
87
  def name
86
- Lib.g_base_info_get_name @gobj
88
+ Lib.g_base_info_get_name self
87
89
  end
88
90
 
89
91
  def info_type
90
- Lib.g_base_info_get_type @gobj
92
+ Lib.g_base_info_get_type self
91
93
  end
92
94
 
93
95
  def namespace
94
- Lib.g_base_info_get_namespace @gobj
96
+ Lib.g_base_info_get_namespace self
95
97
  end
96
98
 
97
99
  def safe_namespace
@@ -99,17 +101,17 @@ module GObjectIntrospection
99
101
  end
100
102
 
101
103
  def container
102
- ptr = Lib.g_base_info_get_container @gobj
104
+ ptr = Lib.g_base_info_get_container self
103
105
  Lib.g_base_info_ref ptr
104
106
  IRepository.wrap_ibaseinfo_pointer ptr
105
107
  end
106
108
 
107
109
  def deprecated?
108
- Lib.g_base_info_is_deprecated @gobj
110
+ Lib.g_base_info_is_deprecated self
109
111
  end
110
112
 
111
113
  def attribute(name)
112
- Lib.g_base_info_get_attribute @gobj, name
114
+ Lib.g_base_info_get_attribute self, name
113
115
  end
114
116
 
115
117
  def self.wrap(ptr)
@@ -117,7 +119,7 @@ module GObjectIntrospection
117
119
  end
118
120
 
119
121
  def ==(other)
120
- other.is_a?(IBaseInfo) && Lib.g_base_info_equal(@gobj, other)
122
+ other.is_a?(IBaseInfo) && Lib.g_base_info_equal(self, other)
121
123
  end
122
124
  end
123
125
  end