gir_ffi 0.9.5 → 0.10.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +9 -0
  3. data/lib/ffi-glib/byte_array.rb +1 -1
  4. data/lib/ffi-glib/bytes.rb +4 -4
  5. data/lib/ffi-glib/container_class_methods.rb +2 -0
  6. data/lib/ffi-glib/iconv.rb +2 -2
  7. data/lib/ffi-glib/variant.rb +10 -2
  8. data/lib/ffi-gobject.rb +6 -14
  9. data/lib/ffi-gobject/object.rb +7 -0
  10. data/lib/ffi-gobject/object_class.rb +1 -1
  11. data/lib/ffi-gobject/param_spec.rb +12 -0
  12. data/lib/ffi-gobject/value.rb +20 -11
  13. data/lib/gir_ffi-base/gobject.rb +35 -3
  14. data/lib/gir_ffi-base/gobject/lib.rb +2 -0
  15. data/lib/gir_ffi/allocation_helper.rb +11 -0
  16. data/lib/gir_ffi/arg_helper.rb +4 -0
  17. data/lib/gir_ffi/boxed_base.rb +28 -32
  18. data/lib/gir_ffi/builders/argument_builder.rb +31 -6
  19. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +36 -7
  20. data/lib/gir_ffi/builders/callback_argument_builder.rb +24 -10
  21. data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +1 -1
  22. data/lib/gir_ffi/builders/field_builder.rb +28 -10
  23. data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +2 -3
  24. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +5 -1
  25. data/lib/gir_ffi/builders/null_argument_builder.rb +0 -12
  26. data/lib/gir_ffi/builders/pointer_value_convertor.rb +38 -0
  27. data/lib/gir_ffi/builders/return_value_builder.rb +12 -10
  28. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +21 -2
  29. data/lib/gir_ffi/builders/struct_builder.rb +9 -2
  30. data/lib/gir_ffi/builders/{boxed_builder.rb → struct_like.rb} +2 -5
  31. data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +5 -2
  32. data/lib/gir_ffi/builders/union_builder.rb +5 -2
  33. data/lib/gir_ffi/enum_base.rb +4 -0
  34. data/lib/gir_ffi/error_argument_info.rb +0 -16
  35. data/lib/gir_ffi/ffi_ext/pointer.rb +11 -5
  36. data/lib/gir_ffi/flags_base.rb +4 -0
  37. data/lib/gir_ffi/in_out_pointer.rb +5 -30
  38. data/lib/gir_ffi/in_pointer.rb +5 -4
  39. data/lib/gir_ffi/info_ext/i_type_info.rb +3 -5
  40. data/lib/gir_ffi/object_base.rb +4 -0
  41. data/lib/gir_ffi/sized_array.rb +20 -0
  42. data/lib/gir_ffi/struct_base.rb +13 -2
  43. data/lib/gir_ffi/struct_like_base.rb +53 -0
  44. data/lib/gir_ffi/union_base.rb +7 -1
  45. data/lib/gir_ffi/version.rb +1 -1
  46. data/test/ffi-glib/destroy_notify_test.rb +4 -1
  47. data/test/ffi-gobject/param_spec_test.rb +18 -0
  48. data/test/gir_ffi/arg_helper_test.rb +17 -0
  49. data/test/gir_ffi/boxed_base_test.rb +24 -0
  50. data/test/gir_ffi/builders/argument_builder_test.rb +156 -63
  51. data/test/gir_ffi/builders/callback_argument_builder_test.rb +10 -10
  52. data/test/gir_ffi/builders/callback_builder_test.rb +31 -8
  53. data/test/gir_ffi/builders/field_builder_test.rb +32 -30
  54. data/test/gir_ffi/builders/function_builder_test.rb +251 -45
  55. data/test/gir_ffi/builders/initializer_builder_test.rb +17 -1
  56. data/test/gir_ffi/builders/return_value_builder_test.rb +115 -68
  57. data/test/gir_ffi/builders/struct_builder_test.rb +6 -0
  58. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +4 -1
  59. data/test/gir_ffi/builders/vfunc_builder_test.rb +10 -10
  60. data/test/gir_ffi/in_out_pointer_test.rb +12 -81
  61. data/test/gir_ffi/in_pointer_test.rb +0 -17
  62. data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -10
  63. data/test/gir_ffi/sized_array_test.rb +62 -0
  64. data/test/gir_ffi/struct_base_test.rb +24 -0
  65. data/test/gir_ffi/union_base_test.rb +24 -0
  66. data/test/gir_ffi/version_test.rb +1 -1
  67. data/test/integration/generated_gimarshallingtests_test.rb +32 -12
  68. data/test/integration/generated_regress_test.rb +9 -12
  69. metadata +12 -8
  70. data/lib/ffi-gobject/base.rb +0 -27
  71. data/lib/gir_ffi/user_data_argument_info.rb +0 -24
  72. data/lib/gir_ffi/user_data_type_info.rb +0 -22
@@ -24,7 +24,7 @@ describe GirFFI::Builders::InitializerBuilder do
24
24
  it 'builds a custom initializer' do
25
25
  code.must_equal <<-CODE.reset_indentation
26
26
  def initialize_from_file(x)
27
- _v1 = GirFFI::InPointer.from(:utf8, x)
27
+ _v1 = GirFFI::InPointer.from_utf8(x)
28
28
  _v2 = FFI::MemoryPointer.new(:pointer).write_pointer nil
29
29
  _v3 = Regress::Lib.regress_test_obj_new_from_file _v1, _v2
30
30
  GirFFI::ArgHelper.check_error(_v2)
@@ -33,5 +33,21 @@ describe GirFFI::Builders::InitializerBuilder do
33
33
  CODE
34
34
  end
35
35
  end
36
+
37
+ describe 'for constructors for boxed types' do
38
+ let(:function_info) do
39
+ get_method_introspection_data 'GIMarshallingTests', 'BoxedStruct', 'new'
40
+ end
41
+
42
+ it 'builds an initializer that sets autorelease to true' do
43
+ code.must_equal <<-CODE.reset_indentation
44
+ def initialize
45
+ _v1 = GIMarshallingTests::Lib.gi_marshalling_tests_boxed_struct_new
46
+ _v1.autorelease = true
47
+ store_pointer(_v1)
48
+ end
49
+ CODE
50
+ end
51
+ end
36
52
  end
37
53
  end
@@ -3,15 +3,17 @@ require 'gir_ffi_test_helper'
3
3
 
4
4
  describe GirFFI::Builders::ReturnValueBuilder do
5
5
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
6
- let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info, :nothing, false) }
6
+ let(:type_info) { method_info.return_type }
7
+ let(:ownership_transfer) { method_info.caller_owns }
8
+ let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info, ownership_transfer, false) }
7
9
  let(:builder) do
8
10
  GirFFI::Builders::ReturnValueBuilder.new(var_gen, return_type_info)
9
11
  end
10
12
 
11
13
  describe 'for :gint32' do
12
- let(:type_info) do
14
+ let(:method_info) do
13
15
  get_introspection_data('GIMarshallingTests',
14
- 'int_return_min').return_type
16
+ 'int_return_min')
15
17
  end
16
18
 
17
19
  it 'has no statements in #post_conversion' do
@@ -25,33 +27,35 @@ describe GirFFI::Builders::ReturnValueBuilder do
25
27
  end
26
28
 
27
29
  describe 'for :struct' do
28
- let(:type_info) do
29
- get_method_introspection_data('GIMarshallingTests',
30
- 'BoxedStruct',
31
- 'returnv').return_type
32
- end
30
+ describe 'with transfer :nothing' do
31
+ let(:method_info) do
32
+ get_method_introspection_data('GIMarshallingTests',
33
+ 'BoxedStruct',
34
+ 'returnv')
35
+ end
33
36
 
34
- it 'wraps the result in #post_conversion' do
35
- builder.capture_variable_name.must_equal '_v1'
36
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap(_v1)']
37
- end
37
+ it 'wraps and copies the result in #post_conversion' do
38
+ builder.capture_variable_name.must_equal '_v1'
39
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap_copy(_v1)']
40
+ end
38
41
 
39
- it 'returns the wrapped result' do
40
- builder.capture_variable_name.must_equal '_v1'
41
- builder.return_value_name.must_equal '_v2'
42
+ it 'returns the copied result' do
43
+ builder.capture_variable_name.must_equal '_v1'
44
+ builder.return_value_name.must_equal '_v2'
45
+ end
42
46
  end
43
47
  end
44
48
 
45
49
  describe 'for :union' do
46
- let(:type_info) do
50
+ let(:method_info) do
47
51
  get_method_introspection_data('GIMarshallingTests',
48
52
  'Union',
49
- 'returnv').return_type
53
+ 'returnv')
50
54
  end
51
55
 
52
56
  it 'wraps the result in #post_conversion' do
53
57
  builder.capture_variable_name.must_equal '_v1'
54
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Union.wrap(_v1)']
58
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Union.wrap_copy(_v1)']
55
59
  end
56
60
 
57
61
  it 'returns the wrapped result' do
@@ -61,10 +65,10 @@ describe GirFFI::Builders::ReturnValueBuilder do
61
65
  end
62
66
 
63
67
  describe 'for :interface' do
64
- let(:type_info) do
68
+ let(:method_info) do
65
69
  get_method_introspection_data('Gio',
66
70
  'File',
67
- 'new_for_commandline_arg').return_type
71
+ 'new_for_commandline_arg')
68
72
  end
69
73
 
70
74
  it 'wraps the result in #post_conversion' do
@@ -79,28 +83,49 @@ describe GirFFI::Builders::ReturnValueBuilder do
79
83
  end
80
84
 
81
85
  describe 'for :object' do
82
- let(:type_info) do
83
- get_method_introspection_data('GIMarshallingTests',
84
- 'Object',
85
- 'full_return').return_type
86
- end
86
+ describe 'with full ownership transfer' do
87
+ let(:method_info) do
88
+ get_method_introspection_data('GIMarshallingTests',
89
+ 'Object',
90
+ 'full_return')
91
+ end
87
92
 
88
- it 'wraps the result in #post_conversion' do
89
- builder.capture_variable_name.must_equal '_v1'
90
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1)']
93
+ it 'wraps the result in #post_conversion' do
94
+ builder.capture_variable_name.must_equal '_v1'
95
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1)']
96
+ end
97
+
98
+ it 'returns the wrapped result' do
99
+ builder.capture_variable_name.must_equal '_v1'
100
+ builder.return_value_name.must_equal '_v2'
101
+ end
91
102
  end
92
103
 
93
- it 'returns the wrapped result' do
94
- builder.capture_variable_name.must_equal '_v1'
95
- builder.return_value_name.must_equal '_v2'
104
+ describe 'with no ownership transfer' do
105
+ let(:method_info) do
106
+ get_method_introspection_data('GIMarshallingTests',
107
+ 'Object',
108
+ 'none_return')
109
+ end
110
+
111
+ it 'wraps the result in #post_conversion' do
112
+ builder.capture_variable_name.must_equal '_v1'
113
+ builder.post_conversion.
114
+ must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1).tap { |it| it && it.ref }']
115
+ end
116
+
117
+ it 'returns the wrapped result' do
118
+ builder.capture_variable_name.must_equal '_v1'
119
+ builder.return_value_name.must_equal '_v2'
120
+ end
96
121
  end
97
122
  end
98
123
 
99
124
  describe 'for :strv' do
100
- let(:type_info) do
125
+ let(:method_info) do
101
126
  get_method_introspection_data('GLib',
102
127
  'KeyFile',
103
- 'get_locale_string_list').return_type
128
+ 'get_locale_string_list')
104
129
  end
105
130
 
106
131
  it 'wraps the result in #post_conversion' do
@@ -115,10 +140,10 @@ describe GirFFI::Builders::ReturnValueBuilder do
115
140
  end
116
141
 
117
142
  describe 'for :zero_terminated' do
118
- let(:type_info) do
143
+ let(:method_info) do
119
144
  get_method_introspection_data('GLib',
120
145
  'Variant',
121
- 'dup_bytestring').return_type
146
+ 'dup_bytestring')
122
147
  end
123
148
  before do
124
149
  skip unless type_info.zero_terminated?
@@ -136,9 +161,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
136
161
  end
137
162
 
138
163
  describe 'for :byte_array' do
139
- let(:type_info) do
164
+ let(:method_info) do
140
165
  get_introspection_data('GIMarshallingTests',
141
- 'bytearray_full_return').return_type
166
+ 'bytearray_full_return')
142
167
  end
143
168
 
144
169
  it 'wraps the result in #post_conversion' do
@@ -153,9 +178,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
153
178
  end
154
179
 
155
180
  describe 'for :ptr_array' do
156
- let(:type_info) do
181
+ let(:method_info) do
157
182
  get_introspection_data('GIMarshallingTests',
158
- 'gptrarray_utf8_none_return').return_type
183
+ 'gptrarray_utf8_none_return')
159
184
  end
160
185
 
161
186
  it 'wraps the result in #post_conversion' do
@@ -170,9 +195,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
170
195
  end
171
196
 
172
197
  describe 'for :glist' do
173
- let(:type_info) do
198
+ let(:method_info) do
174
199
  get_introspection_data('GIMarshallingTests',
175
- 'glist_int_none_return').return_type
200
+ 'glist_int_none_return')
176
201
  end
177
202
 
178
203
  it 'wraps the result in #post_conversion' do
@@ -187,9 +212,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
187
212
  end
188
213
 
189
214
  describe 'for :gslist' do
190
- let(:type_info) do
215
+ let(:method_info) do
191
216
  get_introspection_data('GIMarshallingTests',
192
- 'gslist_int_none_return').return_type
217
+ 'gslist_int_none_return')
193
218
  end
194
219
 
195
220
  it 'wraps the result in #post_conversion' do
@@ -204,9 +229,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
204
229
  end
205
230
 
206
231
  describe 'for :ghash' do
207
- let(:type_info) do
232
+ let(:method_info) do
208
233
  get_introspection_data('GIMarshallingTests',
209
- 'ghashtable_int_none_return').return_type
234
+ 'ghashtable_int_none_return')
210
235
  end
211
236
 
212
237
  it 'wraps the result in #post_conversion' do
@@ -221,9 +246,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
221
246
  end
222
247
 
223
248
  describe 'for :array' do
224
- let(:type_info) do
249
+ let(:method_info) do
225
250
  get_introspection_data('GIMarshallingTests',
226
- 'garray_int_none_return').return_type
251
+ 'garray_int_none_return')
227
252
  end
228
253
 
229
254
  it 'wraps the result in #post_conversion' do
@@ -238,9 +263,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
238
263
  end
239
264
 
240
265
  describe 'for :error' do
241
- let(:type_info) do
266
+ let(:method_info) do
242
267
  get_introspection_data('GIMarshallingTests',
243
- 'gerror_return').return_type
268
+ 'gerror_return')
244
269
  end
245
270
 
246
271
  it 'wraps the result in #post_conversion' do
@@ -256,9 +281,9 @@ describe GirFFI::Builders::ReturnValueBuilder do
256
281
 
257
282
  describe 'for :c' do
258
283
  describe 'with fixed size' do
259
- let(:type_info) do
284
+ let(:method_info) do
260
285
  get_introspection_data('GIMarshallingTests',
261
- 'array_fixed_int_return').return_type
286
+ 'array_fixed_int_return')
262
287
  end
263
288
 
264
289
  it 'converts the result in #post_conversion' do
@@ -274,10 +299,10 @@ describe GirFFI::Builders::ReturnValueBuilder do
274
299
 
275
300
  describe 'with separate size parameter' do
276
301
  let(:length_argument) { Object.new }
277
- let(:type_info) do
302
+ let(:method_info) do
278
303
  get_method_introspection_data('GIMarshallingTests',
279
304
  'Object',
280
- 'method_array_return').return_type
305
+ 'method_array_return')
281
306
  end
282
307
 
283
308
  before do
@@ -298,22 +323,42 @@ describe GirFFI::Builders::ReturnValueBuilder do
298
323
  end
299
324
 
300
325
  describe 'for :utf8' do
301
- let(:type_info) do
302
- get_introspection_data('GIMarshallingTests', 'utf8_full_return').return_type
303
- end
326
+ describe 'with no transfer' do
327
+ let(:method_info) do
328
+ get_introspection_data('GIMarshallingTests', 'utf8_none_return')
329
+ end
304
330
 
305
- it 'converts the result in #post_conversion' do
306
- builder.capture_variable_name.must_equal '_v1'
307
- builder.post_conversion.must_equal ['_v2 = _v1.to_utf8']
331
+ it 'converts the result in #post_conversion' do
332
+ builder.capture_variable_name.must_equal '_v1'
333
+ builder.post_conversion.must_equal ['_v2 = _v1.to_utf8']
334
+ end
335
+
336
+ it 'returns the converted result' do
337
+ builder.capture_variable_name.must_equal '_v1'
338
+ builder.return_value_name.must_equal '_v2'
339
+ end
308
340
  end
309
341
 
310
- it 'returns the converted result' do
311
- builder.capture_variable_name.must_equal '_v1'
312
- builder.return_value_name.must_equal '_v2'
342
+ describe 'with full transfer' do
343
+ let(:method_info) do
344
+ get_introspection_data('GIMarshallingTests', 'utf8_full_return')
345
+ end
346
+
347
+ it 'autoreleases and converts the result in #post_conversion' do
348
+ builder.capture_variable_name.must_equal '_v1'
349
+ builder.post_conversion.
350
+ must_equal ['_v2 = _v1.tap { |it| it.autorelease = true }.to_utf8']
351
+ end
352
+
353
+ it 'returns the converted result' do
354
+ builder.capture_variable_name.must_equal '_v1'
355
+ builder.return_value_name.must_equal '_v2'
356
+ end
313
357
  end
314
358
  end
315
359
 
316
360
  describe 'for :void pointer' do
361
+ let(:ownership_transfer) { :nothing }
317
362
  let(:callback_info) do
318
363
  get_introspection_data('GIMarshallingTests', 'CallbackIntInt')
319
364
  end
@@ -334,8 +379,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
334
379
  end
335
380
 
336
381
  describe 'for :void' do
337
- let(:type_info) do
338
- get_method_introspection_data('Regress', 'TestObj', 'null_out').return_type
382
+ let(:method_info) do
383
+ get_method_introspection_data('Regress', 'TestObj', 'null_out')
339
384
  end
340
385
 
341
386
  it 'has no statements in #post_conversion' do
@@ -352,9 +397,11 @@ describe GirFFI::Builders::ReturnValueBuilder do
352
397
  end
353
398
 
354
399
  describe 'for a closure argument' do
355
- let(:type_info) do
356
- get_introspection_data('Regress', 'TestCallbackUserData').args[0].argument_type
400
+ let(:ownership_transfer) { :nothing }
401
+ let(:callback_info) do
402
+ get_introspection_data('Regress', 'TestCallbackUserData')
357
403
  end
404
+ let(:type_info) { callback_info.args[0].argument_type }
358
405
 
359
406
  before do
360
407
  builder.closure = true
@@ -372,8 +419,8 @@ describe GirFFI::Builders::ReturnValueBuilder do
372
419
  end
373
420
 
374
421
  describe 'for a skipped return value' do
375
- let(:type_info) do
376
- get_method_introspection_data('Regress', 'TestObj', 'skip_return_val').return_type
422
+ let(:method_info) do
423
+ get_method_introspection_data('Regress', 'TestObj', 'skip_return_val')
377
424
  end
378
425
  let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info, :nothing, true) }
379
426
 
@@ -54,6 +54,12 @@ describe GirFFI::Builders::StructBuilder do
54
54
  builder.superclass.must_equal GirFFI::StructBase
55
55
  end
56
56
 
57
+ it 'returns BoxedBase for a boxed type' do
58
+ info = get_introspection_data 'Regress', 'TestSimpleBoxedB'
59
+ builder = GirFFI::Builders::StructBuilder.new info
60
+ builder.superclass.must_equal GirFFI::BoxedBase
61
+ end
62
+
57
63
  it 'returns the GObject parent class for a type class' do
58
64
  info = get_introspection_data 'GIMarshallingTests', 'SubSubObjectClass'
59
65
  builder = GirFFI::Builders::StructBuilder.new info
@@ -3,7 +3,6 @@ require 'gir_ffi_test_helper'
3
3
 
4
4
  GirFFI.setup :Gio
5
5
  GirFFI.setup :Gst
6
- Gst.init []
7
6
 
8
7
  describe GirFFI::Builders::UnintrospectableBuilder do
9
8
  describe 'building the GLocalFile type' do
@@ -58,6 +57,10 @@ describe GirFFI::Builders::UnintrospectableBuilder do
58
57
  let(:klass) { instance.class }
59
58
  let(:builder) { klass.gir_ffi_builder }
60
59
 
60
+ before do
61
+ Gst.init []
62
+ end
63
+
61
64
  describe 'its #find_signal method' do
62
65
  it 'finds signals that are not defined in the GIR' do
63
66
  signal = builder.find_signal 'handoff'
@@ -78,9 +78,9 @@ describe GirFFI::Builders::VFuncBuilder do
78
78
  def self.call_with_argument_mapping(_proc, _instance, arg, out)
79
79
  _v1 = GIMarshallingTests::Object.wrap(_instance)
80
80
  _v2 = arg
81
- _v3 = GirFFI::InOutPointer.new(:gint8, out)
81
+ _v3 = out
82
82
  _v4 = _proc.call(_v1, _v2)
83
- _v3.set_value _v4
83
+ _v3.put_int8 0, _v4
84
84
  end
85
85
  CODE
86
86
 
@@ -99,9 +99,9 @@ describe GirFFI::Builders::VFuncBuilder do
99
99
  def self.call_with_argument_mapping(_proc, _instance, arg, out)
100
100
  _v1 = GIMarshallingTests::Object.wrap(_instance)
101
101
  _v2 = arg
102
- _v3 = GirFFI::InOutPointer.new(:gint8).tap { |ptr| out.put_pointer 0, ptr }
102
+ _v3 = GirFFI::AllocationHelper.allocate(:int8).tap { |ptr| out.put_pointer 0, ptr }
103
103
  _v4 = _proc.call(_v1, _v2)
104
- _v3.set_value _v4
104
+ _v3.put_pointer 0, _v4
105
105
  end
106
106
  CODE
107
107
 
@@ -119,9 +119,9 @@ describe GirFFI::Builders::VFuncBuilder do
119
119
  expected = <<-CODE.reset_indentation
120
120
  def self.call_with_argument_mapping(_proc, _instance, a)
121
121
  _v1 = GIMarshallingTests::Object.wrap(_instance)
122
- _v2 = GirFFI::InOutPointer.new(GObject::Value, a)
122
+ _v2 = a
123
123
  _v3 = _proc.call(_v1)
124
- _v2.set_value GObject::Value.from(_v3)
124
+ GObject::Value.copy_value_to_pointer(GObject::Value.from(_v3), _v2)
125
125
  end
126
126
  CODE
127
127
 
@@ -140,11 +140,11 @@ describe GirFFI::Builders::VFuncBuilder do
140
140
  def self.call_with_argument_mapping(_proc, _instance, x, _error)
141
141
  _v1 = GIMarshallingTests::Object.wrap(_instance)
142
142
  _v2 = x
143
- _v3 = GirFFI::InOutPointer.new([:pointer, :error], _error)
143
+ _v3 = _error
144
144
  begin
145
145
  _v4 = _proc.call(_v1, _v2)
146
146
  rescue => _v5
147
- _v3.set_value GLib::Error.from(_v5)
147
+ _v3.put_pointer 0, GLib::Error.from(_v5)
148
148
  end
149
149
  return _v4
150
150
  end
@@ -201,9 +201,9 @@ describe GirFFI::Builders::VFuncBuilder do
201
201
  expected = <<-CODE.reset_indentation
202
202
  def self.call_with_argument_mapping(_proc, _instance, object)
203
203
  _v1 = GIMarshallingTests::Object.wrap(_instance)
204
- _v2 = GirFFI::InOutPointer.new([:pointer, GObject::Object], object)
204
+ _v2 = object
205
205
  _v3 = _proc.call(_v1)
206
- _v2.set_value GObject::Object.from(_v3.ref)
206
+ _v2.put_pointer 0, GObject::Object.from(_v3.ref)
207
207
  end
208
208
  CODE
209
209