gir_ffi 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +10 -0
  3. data/Rakefile +9 -1
  4. data/TODO.md +4 -0
  5. data/lib/ffi-glib.rb +5 -0
  6. data/lib/ffi-glib/bytes.rb +49 -0
  7. data/lib/ffi-glib/container_class_methods.rb +1 -4
  8. data/lib/ffi-glib/error.rb +17 -0
  9. data/lib/ffi-gobject/value.rb +6 -3
  10. data/lib/ffi-gobject_introspection/i_callback_info.rb +0 -1
  11. data/lib/ffi-gobject_introspection/i_constant_info.rb +10 -10
  12. data/lib/ffi-gobject_introspection/i_repository.rb +20 -20
  13. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +7 -0
  14. data/lib/ffi-gobject_introspection/lib.rb +1 -7
  15. data/lib/gir_ffi/arg_helper.rb +23 -2
  16. data/lib/gir_ffi/builders/argument_builder.rb +15 -1
  17. data/lib/gir_ffi/builders/base_argument_builder.rb +1 -0
  18. data/lib/gir_ffi/builders/callback_argument_builder.rb +49 -7
  19. data/lib/gir_ffi/builders/callback_return_value_builder.rb +6 -2
  20. data/lib/gir_ffi/builders/closure_convertor.rb +1 -1
  21. data/lib/gir_ffi/builders/null_convertor.rb +1 -0
  22. data/lib/gir_ffi/builders/property_builder.rb +1 -1
  23. data/lib/gir_ffi/builders/return_value_builder.rb +1 -1
  24. data/lib/gir_ffi/builders/type_builder.rb +9 -9
  25. data/lib/gir_ffi/builders/vfunc_builder.rb +3 -1
  26. data/lib/gir_ffi/callback_base.rb +6 -0
  27. data/lib/gir_ffi/error_argument_info.rb +12 -3
  28. data/lib/gir_ffi/error_type_info.rb +21 -0
  29. data/lib/gir_ffi/ffi_ext/pointer.rb +5 -6
  30. data/lib/gir_ffi/glib_error.rb +18 -0
  31. data/lib/gir_ffi/in_pointer.rb +1 -1
  32. data/lib/gir_ffi/info_ext/i_type_info.rb +44 -30
  33. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +13 -1
  34. data/lib/gir_ffi/type_map.rb +30 -29
  35. data/lib/gir_ffi/user_defined_type_info.rb +1 -0
  36. data/lib/gir_ffi/version.rb +1 -1
  37. data/lib/gir_ffi/vfunc_base.rb +1 -0
  38. data/lib/gir_ffi/zero_terminated.rb +3 -8
  39. data/test/base_test_helper.rb +1 -0
  40. data/test/ffi-glib/array_test.rb +2 -2
  41. data/test/ffi-glib/bytes_test.rb +54 -0
  42. data/test/ffi-glib/ptr_array_test.rb +2 -2
  43. data/test/ffi-gobject/value_test.rb +4 -4
  44. data/test/ffi-gobject_introspection/i_repository_test.rb +1 -1
  45. data/test/gir_ffi/builders/callback_argument_builder_test.rb +44 -0
  46. data/test/gir_ffi/builders/callback_builder_test.rb +1 -1
  47. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +74 -0
  48. data/test/gir_ffi/builders/function_builder_test.rb +23 -2
  49. data/test/gir_ffi/builders/property_builder_test.rb +15 -0
  50. data/test/gir_ffi/builders/return_value_builder_test.rb +26 -26
  51. data/test/gir_ffi/builders/signal_builder_test.rb +5 -5
  52. data/test/gir_ffi/builders/union_builder_test.rb +2 -1
  53. data/test/gir_ffi/builders/vfunc_builder_test.rb +125 -4
  54. data/test/gir_ffi/error_type_info_test.rb +48 -0
  55. data/test/gir_ffi/in_pointer_test.rb +1 -1
  56. data/test/gir_ffi/sized_array_test.rb +2 -2
  57. data/test/integration/generated_gimarshallingtests_test.rb +199 -31
  58. data/test/integration/generated_regress_test.rb +37 -33
  59. metadata +214 -202
@@ -23,6 +23,7 @@ require 'gir_ffi-base'
23
23
  require 'ffi-gobject_introspection'
24
24
 
25
25
  GObjectIntrospection::IRepository.prepend_search_path File.join(File.dirname(__FILE__), 'lib')
26
+
26
27
  module GObjectIntrospection
27
28
  class IRepository
28
29
  def shared_library_with_regress namespace
@@ -149,8 +149,8 @@ describe GLib::Array do
149
149
 
150
150
  it "raises an error if the index is out of bounds" do
151
151
  arr = GLib::Array.from :gint32, [1, 2, 3]
152
- lambda { arr.index(16) }.must_raise IndexError
153
- lambda { arr.index(-1) }.must_raise IndexError
152
+ proc { arr.index(16) }.must_raise IndexError
153
+ proc { arr.index(-1) }.must_raise IndexError
154
154
  end
155
155
  end
156
156
  end
@@ -0,0 +1,54 @@
1
+ require 'gir_ffi_test_helper'
2
+
3
+ describe GLib::Bytes do
4
+ it "can succesfully be created with Glib::Bytes.new" do
5
+ bytes = GLib::Bytes.new [1, 2, 3]
6
+ bytes.must_be_instance_of GLib::Bytes
7
+ end
8
+
9
+ it "has a working #get_size method" do
10
+ bytes = GLib::Bytes.new [1, 2, 3]
11
+ bytes.get_size.must_equal 3
12
+ end
13
+
14
+ it "has a working #get_data method" do
15
+ bytes = GLib::Bytes.new [1, 2, 3]
16
+ bytes.get_data.to_a.must_equal [1, 2, 3]
17
+ end
18
+
19
+ it "has a working #each method" do
20
+ a = []
21
+ bytes = GLib::Bytes.new [1, 2, 3]
22
+ bytes.each do |v|
23
+ a.unshift v
24
+ end
25
+ a.must_equal [3, 2, 1]
26
+ end
27
+
28
+ it "has a working #to_a method" do
29
+ bytes = GLib::Bytes.new [1, 2, 3]
30
+ bytes.to_a.must_equal [1, 2, 3]
31
+ end
32
+
33
+ describe ".from" do
34
+ it "creates a GLib::Bytes object form an array of small integers" do
35
+ bytes = GLib::Bytes.from [1, 2, 3]
36
+ bytes.must_be_instance_of GLib::Bytes
37
+ bytes.to_a.must_equal [1, 2, 3]
38
+ end
39
+
40
+ it "returns its argument if given a GLib::Bytes object" do
41
+ bytes = GLib::Bytes.new [1, 2, 3]
42
+ result = GLib::Bytes.from bytes
43
+ assert result.equal?(bytes)
44
+ end
45
+
46
+ it "wraps its argument if given a pointer" do
47
+ bytes = GLib::Bytes.new [1, 2, 3]
48
+ ptr = bytes.to_ptr
49
+ result = GLib::Bytes.from ptr
50
+ result.to_a.must_equal [1, 2, 3]
51
+ result.to_ptr.must_equal ptr
52
+ end
53
+ end
54
+ end
@@ -103,8 +103,8 @@ describe GLib::PtrArray do
103
103
 
104
104
  it "raises an error if the index is out of bounds" do
105
105
  arr = GLib::PtrArray.from :utf8, ["1", "2", "3"]
106
- lambda { arr.index(16) }.must_raise IndexError
107
- lambda { arr.index(-1) }.must_raise IndexError
106
+ proc { arr.index(16) }.must_raise IndexError
107
+ proc { arr.index(-1) }.must_raise IndexError
108
108
  end
109
109
  end
110
110
  end
@@ -65,7 +65,7 @@ describe GObject::Value do
65
65
  end
66
66
 
67
67
  it "handles long values" do
68
- value = 0x1234_5678_9012_3456
68
+ value = FFI.type_size(:long) == 8 ? 0x1234_5678_9012_3456 : 0x1234_5678
69
69
  gv = GObject::Value.for_g_type GObject::TYPE_LONG
70
70
  gv.set_value value
71
71
  gv.get_long.must_equal value
@@ -93,7 +93,7 @@ describe GObject::Value do
93
93
  end
94
94
 
95
95
  it "handles ulong values" do
96
- value = 0x1234_5678_9012_3456
96
+ value = FFI.type_size(:long) == 8 ? 0x1234_5678_9012_3456 : 0x1234_5678
97
97
  gv = GObject::Value.for_g_type GObject::TYPE_ULONG
98
98
  gv.set_value value
99
99
  gv.get_ulong.must_equal value
@@ -157,7 +157,7 @@ describe GObject::Value do
157
157
  end
158
158
 
159
159
  it "unwraps a long" do
160
- value = 0x1234_5678_9012_3456
160
+ value = FFI.type_size(:long) == 8 ? 0x1234_5678_9012_3456 : 0x1234_5678
161
161
  gv = GObject::Value.for_g_type GObject::TYPE_LONG
162
162
  gv.set_long value
163
163
  gv.get_value.must_equal value
@@ -185,7 +185,7 @@ describe GObject::Value do
185
185
  end
186
186
 
187
187
  it "unwraps a ulong" do
188
- value = 0x1234_5678_9012_3456
188
+ value = FFI.type_size(:long) == 8 ? 0x1234_5678_9012_3456 : 0x1234_5678
189
189
  gv = GObject::Value.for_g_type GObject::TYPE_ULONG
190
190
  gv.set_ulong value
191
191
  gv.get_value.must_equal value
@@ -42,7 +42,7 @@ describe GObjectIntrospection::IRepository do
42
42
 
43
43
  describe "#find_by_gtype" do
44
44
  it "raises an error if 0 is passed as the gtype" do
45
- lambda { gir.find_by_gtype 0 }.must_raise ArgumentError
45
+ proc { gir.find_by_gtype 0 }.must_raise ArgumentError
46
46
  end
47
47
  end
48
48
 
@@ -0,0 +1,44 @@
1
+ require 'gir_ffi_test_helper'
2
+
3
+ describe GirFFI::Builders::CallbackArgumentBuilder do
4
+ let(:var_gen) { GirFFI::VariableNameGenerator.new }
5
+ let(:builder) { GirFFI::Builders::CallbackArgumentBuilder.new(var_gen, arg_info) }
6
+
7
+ describe "for an argument with direction :out" do
8
+ describe "for :zero_terminated" do
9
+ let(:vfunc_info) {
10
+ get_vfunc_introspection_data('GIMarshallingTests', 'Object',
11
+ 'vfunc_array_out_parameter') }
12
+ let(:arg_info) { vfunc_info.args[0] }
13
+
14
+ before { skip unless vfunc_info }
15
+
16
+ it "has the correct value for #pre_conversion" do
17
+ builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.new([:pointer, :zero_terminated], a)" ]
18
+ end
19
+
20
+ it "has the correct value for #post_conversion" do
21
+ builder.post_conversion.must_equal [ "_v1.set_value GirFFI::ZeroTerminated.from(:gfloat, _v2)" ]
22
+ end
23
+ end
24
+ end
25
+
26
+ describe "for an argument with direction :error" do
27
+ let(:arg_info) { GirFFI::ErrorArgumentInfo.new }
28
+
29
+ it "sets up a rescueing block in #pre_conversion" do
30
+ builder.pre_conversion.must_equal [
31
+ "_v1 = GirFFI::InOutPointer.new([:pointer, :error], _error)",
32
+ "begin"
33
+ ]
34
+ end
35
+
36
+ it "converts any exceptions to GLib::Error in #post_conversion" do
37
+ builder.post_conversion.must_equal [
38
+ "rescue => _v1",
39
+ "_v2.set_value GLib::Error.from(_v1)",
40
+ "end"
41
+ ]
42
+ end
43
+ end
44
+ end
@@ -39,7 +39,7 @@ describe GirFFI::Builders::CallbackBuilder do
39
39
  it "returns a valid mapping method" do
40
40
  expected = <<-CODE.reset_indentation
41
41
  def self.call_with_argument_mapping(_proc, user_data)
42
- _v1 = GirFFI::ArgHelper::OBJECT_STORE[user_data.address]
42
+ _v1 = GirFFI::ArgHelper::OBJECT_STORE.fetch(user_data)
43
43
  _v2 = _proc.call(_v1)
44
44
  return _v2
45
45
  end
@@ -0,0 +1,74 @@
1
+ require 'gir_ffi_test_helper'
2
+
3
+ describe GirFFI::Builders::CallbackReturnValueBuilder do
4
+ let(:var_gen) { GirFFI::VariableNameGenerator.new }
5
+ let(:return_value_info) { GirFFI::ReturnValueInfo.new(type_info) }
6
+ let(:type_info) { callback_info.return_type }
7
+ let(:builder) { GirFFI::Builders::CallbackReturnValueBuilder.new(var_gen,
8
+ return_value_info) }
9
+
10
+ before do
11
+ skip unless callback_info
12
+ end
13
+
14
+ describe "for :gint32" do
15
+ let(:callback_info) { get_introspection_data("GIMarshallingTests", "CallbackIntInt") }
16
+
17
+ it "has no statements in #post_conversion" do
18
+ builder.post_conversion.must_equal []
19
+ end
20
+
21
+ it "returns the result of the callback directly" do
22
+ builder.capture_variable_name.must_equal "_v1"
23
+ builder.return_value_name.must_equal "_v1"
24
+ end
25
+ end
26
+
27
+ describe "for :void" do
28
+ let(:callback_info) { get_introspection_data("GIMarshallingTests",
29
+ "CallbackMultipleOutParameters") }
30
+
31
+ it "has no statements in #post_conversion" do
32
+ builder.post_conversion.must_equal []
33
+ end
34
+
35
+ it "returns nothing" do
36
+ builder.capture_variable_name.must_be_nil
37
+ builder.return_value_name.must_be_nil
38
+ end
39
+ end
40
+
41
+ describe "for :enum" do
42
+ let(:callback_info) { get_vfunc_introspection_data("GIMarshallingTests",
43
+ "Object",
44
+ "vfunc_return_enum") }
45
+
46
+ it "converts the result" do
47
+ # Ensure variable names are generated in order
48
+ builder.capture_variable_name.must_equal "_v1"
49
+ builder.post_conversion.must_equal [ "_v2 = GIMarshallingTests::Enum.from(_v1)"]
50
+ end
51
+
52
+ it "returns the result of the conversion" do
53
+ builder.capture_variable_name.must_equal "_v1"
54
+ builder.return_value_name.must_equal "_v2"
55
+ end
56
+ end
57
+
58
+ describe "for :object" do
59
+ let(:callback_info) { get_vfunc_introspection_data("GIMarshallingTests",
60
+ "Object",
61
+ "vfunc_return_object_transfer_full") }
62
+
63
+ it "converts the result to a pointer" do
64
+ # Ensure variable names are generated in order
65
+ builder.capture_variable_name.must_equal "_v1"
66
+ builder.post_conversion.must_equal [ "_v2 = GObject::Object.from(_v1).to_ptr"]
67
+ end
68
+
69
+ it "returns the result of the conversion" do
70
+ builder.capture_variable_name.must_equal "_v1"
71
+ builder.return_value_name.must_equal "_v2"
72
+ end
73
+ end
74
+ end
@@ -169,9 +169,10 @@ describe GirFFI::Builders::FunctionBuilder do
169
169
  describe "for GLib::Variant.get_strv" do
170
170
  let(:function_info) { get_method_introspection_data 'GLib', 'Variant', 'get_strv' }
171
171
  it "builds a correct definition" do
172
+ size_type = ":guint#{FFI.type_size(:size_t) * 8}"
172
173
  code.must_equal <<-CODE.reset_indentation
173
174
  def get_strv
174
- _v1 = GirFFI::InOutPointer.for :guint64
175
+ _v1 = GirFFI::InOutPointer.for #{size_type}
175
176
  _v2 = GLib::Lib.g_variant_get_strv self, _v1
176
177
  _v3 = GLib::Strv.wrap(_v2)
177
178
  return _v3
@@ -181,7 +182,7 @@ describe GirFFI::Builders::FunctionBuilder do
181
182
  end
182
183
 
183
184
  describe "for Regress.has_parameter_named_attrs" do
184
- let(:function_info) {get_introspection_data 'Regress', 'has_parameter_named_attrs' }
185
+ let(:function_info) { get_introspection_data 'Regress', 'has_parameter_named_attrs' }
185
186
 
186
187
  it "builds a correct definition" do
187
188
  skip unless function_info
@@ -195,5 +196,25 @@ describe GirFFI::Builders::FunctionBuilder do
195
196
  CODE
196
197
  end
197
198
  end
199
+
200
+ describe "for GIMarshallingTests::Object.method_int8_arg_and_out_callee" do
201
+ let(:function_info) {
202
+ get_method_introspection_data('GIMarshallingTests', 'Object',
203
+ 'method_int8_arg_and_out_callee')
204
+ }
205
+
206
+ it "builds a correct definition" do
207
+ skip unless function_info
208
+ code.must_equal <<-CODE.reset_indentation
209
+ def method_int8_arg_and_out_callee arg
210
+ _v1 = arg
211
+ _v2 = GirFFI::InOutPointer.for [:pointer, :gint8]
212
+ GIMarshallingTests::Lib.gi_marshalling_tests_object_method_int8_arg_and_out_callee self, _v1, _v2
213
+ _v3 = GirFFI::InOutPointer.new(:gint8, _v2.to_value).to_value
214
+ return _v3
215
+ end
216
+ CODE
217
+ end
218
+ end
198
219
  end
199
220
  end
@@ -107,4 +107,19 @@ describe GirFFI::Builders::PropertyBuilder do
107
107
  builder.setter_def.must_equal expected
108
108
  end
109
109
  end
110
+
111
+ describe "#container_defines_getter_method?" do
112
+ let(:property_info) { Object.new.tap {|o| o.extend GirFFI::InfoExt::IPropertyInfo } }
113
+ let(:container_info) { Object.new }
114
+
115
+ before do
116
+ stub(property_info).container { container_info }
117
+ stub(property_info).name { "foo-bar" }
118
+ stub(container_info).find_instance_method("foo_bar") { true }
119
+ end
120
+
121
+ it "finds methods with underscores for properties with dashes" do
122
+ builder.container_defines_getter_method?.must_equal true
123
+ end
124
+ end
110
125
  end
@@ -10,7 +10,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
10
10
 
11
11
  describe "for :gint32" do
12
12
  let(:type_info) { get_introspection_data("GIMarshallingTests",
13
- "int_return_min").return_type }
13
+ "int_return_min").return_type }
14
14
 
15
15
  it "has no statements in #post_conversion" do
16
16
  builder.post_conversion.must_equal []
@@ -24,8 +24,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
24
24
 
25
25
  describe "for :struct" do
26
26
  let(:type_info) { get_method_introspection_data("GIMarshallingTests",
27
- "BoxedStruct",
28
- "returnv").return_type }
27
+ "BoxedStruct",
28
+ "returnv").return_type }
29
29
 
30
30
  it "wraps the result in #post_conversion" do
31
31
  builder.capture_variable_name.must_equal "_v1"
@@ -40,8 +40,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
40
40
 
41
41
  describe "for :union" do
42
42
  let(:type_info) { get_method_introspection_data("GIMarshallingTests",
43
- "Union",
44
- "returnv").return_type }
43
+ "Union",
44
+ "returnv").return_type }
45
45
 
46
46
  it "wraps the result in #post_conversion" do
47
47
  builder.capture_variable_name.must_equal "_v1"
@@ -56,8 +56,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
56
56
 
57
57
  describe "for :interface" do
58
58
  let(:type_info) { get_method_introspection_data("Gio",
59
- "File",
60
- "new_for_commandline_arg").return_type }
59
+ "File",
60
+ "new_for_commandline_arg").return_type }
61
61
 
62
62
  it "wraps the result in #post_conversion" do
63
63
  builder.capture_variable_name.must_equal "_v1"
@@ -73,8 +73,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
73
73
  describe "for :object" do
74
74
  describe "when the method is not a constructor" do
75
75
  let(:type_info) { get_method_introspection_data("GIMarshallingTests",
76
- "Object",
77
- "full_return").return_type }
76
+ "Object",
77
+ "full_return").return_type }
78
78
  let(:for_constructor) { false }
79
79
 
80
80
  it "wraps the result in #post_conversion" do
@@ -90,8 +90,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
90
90
 
91
91
  describe "when the method is a constructor" do
92
92
  let(:type_info) { get_method_introspection_data("GIMarshallingTests",
93
- "Object",
94
- "new").return_type }
93
+ "Object",
94
+ "new").return_type }
95
95
  let(:for_constructor) { true }
96
96
 
97
97
  it "wraps the result in #post_conversion" do
@@ -108,8 +108,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
108
108
 
109
109
  describe "for :strv" do
110
110
  let(:type_info) { get_method_introspection_data("GLib",
111
- "KeyFile",
112
- "get_locale_string_list").return_type }
111
+ "KeyFile",
112
+ "get_locale_string_list").return_type }
113
113
 
114
114
  it "wraps the result in #post_conversion" do
115
115
  builder.capture_variable_name.must_equal "_v1"
@@ -124,8 +124,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
124
124
 
125
125
  describe "for :zero_terminated" do
126
126
  let(:type_info) { get_method_introspection_data("GLib",
127
- "Variant",
128
- "dup_bytestring").return_type }
127
+ "Variant",
128
+ "dup_bytestring").return_type }
129
129
  before do
130
130
  skip unless type_info.zero_terminated?
131
131
  end
@@ -143,7 +143,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
143
143
 
144
144
  describe "for :byte_array" do
145
145
  let(:type_info) { get_introspection_data("GIMarshallingTests",
146
- "bytearray_full_return").return_type }
146
+ "bytearray_full_return").return_type }
147
147
 
148
148
  it "wraps the result in #post_conversion" do
149
149
  builder.capture_variable_name.must_equal "_v1"
@@ -158,7 +158,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
158
158
 
159
159
  describe "for :ptr_array" do
160
160
  let(:type_info) { get_introspection_data("GIMarshallingTests",
161
- "gptrarray_utf8_none_return").return_type }
161
+ "gptrarray_utf8_none_return").return_type }
162
162
 
163
163
  it "wraps the result in #post_conversion" do
164
164
  builder.capture_variable_name.must_equal "_v1"
@@ -173,7 +173,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
173
173
 
174
174
  describe "for :glist" do
175
175
  let(:type_info) { get_introspection_data("GIMarshallingTests",
176
- "glist_int_none_return").return_type }
176
+ "glist_int_none_return").return_type }
177
177
 
178
178
  it "wraps the result in #post_conversion" do
179
179
  builder.capture_variable_name.must_equal "_v1"
@@ -188,7 +188,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
188
188
 
189
189
  describe "for :gslist" do
190
190
  let(:type_info) { get_introspection_data("GIMarshallingTests",
191
- "gslist_int_none_return").return_type }
191
+ "gslist_int_none_return").return_type }
192
192
 
193
193
  it "wraps the result in #post_conversion" do
194
194
  builder.capture_variable_name.must_equal "_v1"
@@ -203,7 +203,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
203
203
 
204
204
  describe "for :ghash" do
205
205
  let(:type_info) { get_introspection_data("GIMarshallingTests",
206
- "ghashtable_int_none_return").return_type }
206
+ "ghashtable_int_none_return").return_type }
207
207
 
208
208
  it "wraps the result in #post_conversion" do
209
209
  builder.capture_variable_name.must_equal "_v1"
@@ -218,7 +218,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
218
218
 
219
219
  describe "for :array" do
220
220
  let(:type_info) { get_introspection_data("GIMarshallingTests",
221
- "garray_int_none_return").return_type }
221
+ "garray_int_none_return").return_type }
222
222
 
223
223
 
224
224
  it "wraps the result in #post_conversion" do
@@ -234,7 +234,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
234
234
 
235
235
  describe "for :error" do
236
236
  let(:type_info) { get_introspection_data("GIMarshallingTests",
237
- "gerror_return").return_type }
237
+ "gerror_return").return_type }
238
238
 
239
239
  it "wraps the result in #post_conversion" do
240
240
  builder.capture_variable_name.must_equal "_v1"
@@ -250,7 +250,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
250
250
  describe "for :c" do
251
251
  describe "with fixed size" do
252
252
  let(:type_info) { get_introspection_data("GIMarshallingTests",
253
- "array_fixed_int_return").return_type }
253
+ "array_fixed_int_return").return_type }
254
254
 
255
255
  it "converts the result in #post_conversion" do
256
256
  builder.capture_variable_name.must_equal "_v1"
@@ -266,8 +266,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
266
266
  describe "with separate size parameter" do
267
267
  let(:length_argument) { Object.new }
268
268
  let(:type_info) { get_method_introspection_data("GIMarshallingTests",
269
- "Object",
270
- "method_array_return").return_type }
269
+ "Object",
270
+ "method_array_return").return_type }
271
271
 
272
272
  before do
273
273
  stub(length_argument).post_converted_name { "bar" }
@@ -347,7 +347,7 @@ describe GirFFI::Builders::ReturnValueBuilder do
347
347
 
348
348
  it "fetches the stored object in #post_conversion" do
349
349
  builder.capture_variable_name.must_equal "_v1"
350
- builder.post_conversion.must_equal [ "_v2 = GirFFI::ArgHelper::OBJECT_STORE[_v1.address]" ]
350
+ builder.post_conversion.must_equal [ "_v2 = GirFFI::ArgHelper::OBJECT_STORE.fetch(_v1)" ]
351
351
  end
352
352
 
353
353
  it "returns the stored object" do