ffi 1.9.3-x86-mingw32 → 1.9.5-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ffi might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Rakefile +13 -16
- data/ext/ffi_c/DynamicLibrary.c +9 -5
- data/ext/ffi_c/DynamicLibrary.h +49 -0
- data/ext/ffi_c/Function.c +4 -3
- data/ext/ffi_c/FunctionInfo.c +2 -2
- data/ext/ffi_c/Platform.c +2 -2
- data/ext/ffi_c/Struct.c +1 -0
- data/ext/ffi_c/Variadic.c +2 -2
- data/ffi.gemspec +5 -5
- data/lib/1.8/ffi_c.so +0 -0
- data/lib/1.9/ffi_c.so +0 -0
- data/lib/2.0/ffi_c.so +0 -0
- data/lib/ffi/library.rb +7 -7
- data/lib/ffi/platform.rb +4 -1
- data/lib/ffi/platform/x86_64-netbsd/types.conf +2 -0
- data/lib/ffi/struct.rb +2 -2
- data/lib/ffi/version.rb +1 -1
- data/libtest/ClosureTest.c +15 -0
- data/libtest/FunctionTest.c +12 -0
- data/spec/ffi/LICENSE.SPECS +22 -0
- data/spec/ffi/async_callback_spec.rb +1 -0
- data/spec/ffi/bool_spec.rb +2 -0
- data/spec/ffi/buffer_spec.rb +1 -0
- data/spec/ffi/callback_spec.rb +31 -4
- data/spec/ffi/custom_param_type.rb +1 -0
- data/spec/ffi/custom_type_spec.rb +1 -0
- data/spec/ffi/dup_spec.rb +1 -1
- data/spec/ffi/enum_spec.rb +1 -0
- data/spec/ffi/errno_spec.rb +2 -0
- data/spec/ffi/ffi_spec.rb +1 -0
- data/spec/ffi/fixtures/Benchmark.c +52 -0
- data/spec/ffi/fixtures/BoolTest.c +34 -0
- data/spec/ffi/fixtures/BufferTest.c +31 -0
- data/spec/ffi/fixtures/ClosureTest.c +190 -0
- data/spec/ffi/fixtures/EnumTest.c +34 -0
- data/spec/ffi/fixtures/FunctionTest.c +58 -0
- data/spec/ffi/fixtures/GNUmakefile +149 -0
- data/spec/ffi/fixtures/GlobalVariable.c +62 -0
- data/spec/ffi/fixtures/LastErrorTest.c +21 -0
- data/spec/ffi/fixtures/NumberTest.c +132 -0
- data/spec/ffi/fixtures/PointerTest.c +63 -0
- data/spec/ffi/fixtures/ReferenceTest.c +23 -0
- data/spec/ffi/fixtures/StringTest.c +34 -0
- data/spec/ffi/fixtures/StructTest.c +243 -0
- data/spec/ffi/fixtures/UnionTest.c +43 -0
- data/spec/ffi/fixtures/VariadicTest.c +99 -0
- data/spec/ffi/fixtures/classes.rb +438 -0
- data/spec/ffi/function_spec.rb +4 -2
- data/spec/ffi/io_spec.rb +17 -0
- data/spec/ffi/library_spec.rb +25 -0
- data/spec/ffi/long_double.rb +1 -0
- data/spec/ffi/managed_struct_spec.rb +1 -1
- data/spec/ffi/memorypointer_spec.rb +72 -0
- data/spec/ffi/number_spec.rb +2 -0
- data/spec/ffi/platform_spec.rb +97 -0
- data/spec/ffi/pointer_spec.rb +8 -2
- data/spec/ffi/rbx/attach_function_spec.rb +6 -0
- data/spec/ffi/rbx/memory_pointer_spec.rb +7 -2
- data/spec/ffi/rbx/spec_helper.rb +7 -1
- data/spec/ffi/rbx/struct_spec.rb +7 -1
- data/spec/ffi/spec_helper.rb +68 -9
- data/spec/ffi/string_spec.rb +3 -1
- data/spec/ffi/strptr_spec.rb +1 -0
- data/spec/ffi/struct_by_ref_spec.rb +4 -3
- data/spec/ffi/struct_callback_spec.rb +2 -1
- data/spec/ffi/struct_initialize_spec.rb +1 -0
- data/spec/ffi/struct_packed_spec.rb +1 -0
- data/spec/ffi/struct_spec.rb +99 -39
- data/spec/ffi/typedef_spec.rb +15 -3
- data/spec/ffi/union_spec.rb +1 -0
- data/spec/ffi/variadic_spec.rb +18 -0
- data/spec/spec.opts +1 -2
- metadata +418 -392
data/spec/ffi/strptr_spec.rb
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
7
|
+
require 'ffi'
|
7
8
|
|
8
9
|
describe FFI::Struct, ' by_ref' do
|
9
10
|
before :all do
|
@@ -11,10 +12,10 @@ describe FFI::Struct, ' by_ref' do
|
|
11
12
|
layout :a, :pointer
|
12
13
|
end
|
13
14
|
|
14
|
-
@api = Module.new do
|
15
|
+
@api = Module.new do
|
15
16
|
extend FFI::Library
|
16
17
|
ffi_lib TestLibrary::PATH
|
17
|
-
fn = FFI::Type::POINTER.size == FFI::Type::LONG.size ? :ret_ulong :
|
18
|
+
fn = FFI::Type::POINTER.size == FFI::Type::LONG.size ? :ret_ulong : :ret_u64
|
18
19
|
attach_function :struct_test, fn, [ struct_class.by_ref ], :pointer
|
19
20
|
end
|
20
21
|
end
|
@@ -23,7 +24,7 @@ describe FFI::Struct, ' by_ref' do
|
|
23
24
|
s = @struct_class.new
|
24
25
|
@api.struct_test(s).should == s.pointer
|
25
26
|
end
|
26
|
-
|
27
|
+
|
27
28
|
it "should accept nil" do
|
28
29
|
@api.struct_test(nil).should == nil
|
29
30
|
end
|
@@ -4,6 +4,7 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
7
|
+
require 'ffi'
|
7
8
|
|
8
9
|
describe FFI::Struct, ' with inline callback functions' do
|
9
10
|
it 'should be able to define inline callback field' do
|
@@ -19,7 +20,7 @@ describe FFI::Struct, ' with inline callback functions' do
|
|
19
20
|
end
|
20
21
|
attach_function :struct_call_add_cb, [TestStruct, :int, :int], :int
|
21
22
|
attach_function :struct_call_sub_cb, [TestStruct, :int, :int], :int
|
22
|
-
end
|
23
|
+
end.should be_an_instance_of FFI::Function
|
23
24
|
end
|
24
25
|
it 'should take methods as callbacks' do
|
25
26
|
module CallbackMember2
|
data/spec/ffi/struct_spec.rb
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
7
|
+
require 'ffi'
|
8
|
+
|
7
9
|
describe "Struct tests" do
|
8
10
|
StructTypes = {
|
9
11
|
's8' => :char,
|
@@ -18,7 +20,12 @@ describe "Struct tests" do
|
|
18
20
|
extend FFI::Library
|
19
21
|
ffi_lib TestLibrary::PATH
|
20
22
|
attach_function :ptr_ret_pointer, [ :pointer, :int], :string
|
21
|
-
|
23
|
+
begin
|
24
|
+
attach_function :ptr_ret_int32_t, [ :pointer, :int ], :int
|
25
|
+
rescue FFI::NotFoundError
|
26
|
+
# NetBSD uses #define instead of typedef for these
|
27
|
+
attach_function :ptr_ret_int32_t, :ptr_ret___int32_t, [ :pointer, :int ], :int
|
28
|
+
end
|
22
29
|
attach_function :ptr_from_address, [ :ulong ], :pointer
|
23
30
|
attach_function :string_equals, [ :string, :string ], :int
|
24
31
|
[ 's8', 's16', 's32', 's64', 'f32', 'f64', 'long' ].each do |t|
|
@@ -61,7 +68,7 @@ describe "Struct tests" do
|
|
61
68
|
it "Struct#[:pointer]=struct" do
|
62
69
|
smp = FFI::MemoryPointer.new :pointer
|
63
70
|
s = PointerMember.new smp
|
64
|
-
lambda { s[:pointer] = s }.should_not raise_error
|
71
|
+
lambda { s[:pointer] = s }.should_not raise_error Exception
|
65
72
|
end
|
66
73
|
it "Struct#[:pointer]=nil" do
|
67
74
|
smp = FFI::MemoryPointer.new :pointer
|
@@ -121,21 +128,19 @@ describe "Struct tests" do
|
|
121
128
|
s[:b] = 0xfee1deadbeef
|
122
129
|
mp.get_int64(4).should == 0xfee1deadbeef
|
123
130
|
end
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
mp.get_int64(ll_off).should == 0xfee1deadbeef
|
138
|
-
end
|
131
|
+
|
132
|
+
it "Struct#layout withs with a hash of :name => type" do
|
133
|
+
class HashLayout < FFI::Struct
|
134
|
+
layout :a => :int, :b => :long_long
|
135
|
+
end
|
136
|
+
ll_off = (FFI::TYPE_UINT64.alignment == 4? 4 : 8)
|
137
|
+
HashLayout.size.should == (ll_off + 8)
|
138
|
+
mp = FFI::MemoryPointer.new(HashLayout.size)
|
139
|
+
s = HashLayout.new mp
|
140
|
+
s[:a] = 0x12345678
|
141
|
+
mp.get_int(0).should == 0x12345678
|
142
|
+
s[:b] = 0xfee1deadbeef
|
143
|
+
mp.get_int64(ll_off).should == 0xfee1deadbeef
|
139
144
|
end
|
140
145
|
|
141
146
|
it "subclass overrides initialize without calling super" do
|
@@ -163,7 +168,7 @@ describe "Struct tests" do
|
|
163
168
|
layout :c, :char
|
164
169
|
end
|
165
170
|
attach_function :struct_field_s8, [ TestStruct.in ], :char
|
166
|
-
end
|
171
|
+
end.should be_an_instance_of FFI::Function
|
167
172
|
end
|
168
173
|
it "Can use Struct subclass as IN parameter type" do
|
169
174
|
module StructParam2
|
@@ -173,7 +178,7 @@ describe "Struct tests" do
|
|
173
178
|
layout :c, :char
|
174
179
|
end
|
175
180
|
attach_function :struct_field_s8, [ TestStruct.in ], :char
|
176
|
-
end
|
181
|
+
end.should be_an_instance_of FFI::Function
|
177
182
|
end
|
178
183
|
it "Can use Struct subclass as OUT parameter type" do
|
179
184
|
module StructParam3
|
@@ -183,7 +188,7 @@ describe "Struct tests" do
|
|
183
188
|
layout :c, :char
|
184
189
|
end
|
185
190
|
attach_function :struct_field_s8, [ TestStruct.out ], :char
|
186
|
-
end
|
191
|
+
end.should be_an_instance_of FFI::Function
|
187
192
|
end
|
188
193
|
it "can be passed directly as a :pointer parameter" do
|
189
194
|
class TestStruct < FFI::Struct
|
@@ -261,7 +266,7 @@ describe "Struct tests" do
|
|
261
266
|
def test_num_field(type, v)
|
262
267
|
klass = Class.new(FFI::Struct)
|
263
268
|
klass.layout :v, type, :dummy, :long
|
264
|
-
|
269
|
+
|
265
270
|
s = klass.new
|
266
271
|
s[:v] = v
|
267
272
|
s.pointer.send("get_#{type.to_s}", 0).should == v
|
@@ -312,11 +317,11 @@ describe "Struct tests" do
|
|
312
317
|
extend FFI::Library
|
313
318
|
TestEnum = enum :test_enum, [:c1, 10, :c2, 20, :c3, 30, :c4, 40]
|
314
319
|
class TestStruct < FFI::Struct
|
315
|
-
layout :a, :int, :c, :test_enum,
|
320
|
+
layout :a, :int, :c, :test_enum,
|
316
321
|
:d, [ TestEnum, TestEnum.symbols.length ]
|
317
322
|
end
|
318
323
|
end
|
319
|
-
|
324
|
+
|
320
325
|
it ":enum field r/w" do
|
321
326
|
s = EnumFields::TestStruct.new
|
322
327
|
s[:c] = :c3
|
@@ -324,22 +329,22 @@ describe "Struct tests" do
|
|
324
329
|
s.pointer.get_uint(FFI::Type::INT32.size).should == 30
|
325
330
|
s[:c].should == :c3
|
326
331
|
end
|
327
|
-
|
332
|
+
|
328
333
|
it "array of :enum field" do
|
329
334
|
s = EnumFields::TestStruct.new
|
330
335
|
EnumFields::TestEnum.symbols.each_with_index do |val, i|
|
331
336
|
s[:d][i] = val
|
332
337
|
end
|
333
|
-
|
338
|
+
|
334
339
|
EnumFields::TestEnum.symbols.each_with_index do |val, i|
|
335
340
|
s.pointer.get_uint(FFI::Type::INT32.size * (2 + i)).should == EnumFields::TestEnum[val]
|
336
341
|
end
|
337
|
-
|
342
|
+
|
338
343
|
s[:d].each_with_index do |val, i|
|
339
344
|
val.should == EnumFields::TestEnum.symbols[i]
|
340
345
|
end
|
341
346
|
end
|
342
|
-
|
347
|
+
|
343
348
|
module CallbackMember
|
344
349
|
extend FFI::Library
|
345
350
|
ffi_lib TestLibrary::PATH
|
@@ -396,6 +401,58 @@ describe "Struct tests" do
|
|
396
401
|
end
|
397
402
|
end
|
398
403
|
|
404
|
+
describe FFI::Struct, ".layout" do
|
405
|
+
module FFISpecs
|
406
|
+
module LibTest
|
407
|
+
extend FFI::Library
|
408
|
+
ffi_lib TestLibrary::PATH
|
409
|
+
begin
|
410
|
+
attach_function :ptr_ret_int32_t, [ :pointer, :int ], :int
|
411
|
+
rescue FFI::NotFoundError
|
412
|
+
# NetBSD uses #define instead of typedef for these
|
413
|
+
attach_function :ptr_ret_int32_t, :ptr_ret___int32_t, [ :pointer, :int ], :int
|
414
|
+
end
|
415
|
+
end
|
416
|
+
end
|
417
|
+
|
418
|
+
describe "when derived class is not assigned to any constant" do
|
419
|
+
it "resolves a built-in type" do
|
420
|
+
klass = Class.new FFI::Struct
|
421
|
+
klass.layout :number, :int
|
422
|
+
|
423
|
+
instance = klass.new
|
424
|
+
instance[:number] = 0xA1
|
425
|
+
FFISpecs::LibTest.ptr_ret_int32_t(instance, 0).should == 0xA1
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
describe "when derived class is assigned to a constant" do
|
430
|
+
it "resolves a built-in type" do
|
431
|
+
class FFISpecs::TestStruct < FFI::Struct
|
432
|
+
layout :number, :int
|
433
|
+
end
|
434
|
+
|
435
|
+
instance = FFISpecs::TestStruct.new
|
436
|
+
instance[:number] = 0xA1
|
437
|
+
FFISpecs::LibTest.ptr_ret_int32_t(instance, 0).should == 0xA1
|
438
|
+
end
|
439
|
+
|
440
|
+
it "resolves a type from the enclosing module" do
|
441
|
+
module FFISpecs::LibTest
|
442
|
+
typedef :uint, :custom_int
|
443
|
+
|
444
|
+
class TestStruct < FFI::Struct
|
445
|
+
layout :number, :custom_int
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
instance = FFISpecs::LibTest::TestStruct.new
|
450
|
+
instance[:number] = 0xA1
|
451
|
+
FFISpecs::LibTest.ptr_ret_int32_t(instance, 0).should == 0xA1
|
452
|
+
end
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
399
456
|
describe FFI::Struct, ' with a nested struct field' do
|
400
457
|
module LibTest
|
401
458
|
extend FFI::Library
|
@@ -420,7 +477,7 @@ describe FFI::Struct, ' with a nested struct field' do
|
|
420
477
|
LibTest::ContainerStruct.size.should == 8
|
421
478
|
end
|
422
479
|
it 'should return a Struct object when the field is accessed' do
|
423
|
-
@cs[:ns].is_a?(FFI::Struct).should be_true
|
480
|
+
@cs[:ns].is_a?(FFI::Struct).should be_true
|
424
481
|
end
|
425
482
|
it 'should read a value from memory' do
|
426
483
|
@cs = LibTest::ContainerStruct.new(LibTest.struct_make_container_struct(123))
|
@@ -432,7 +489,7 @@ describe FFI::Struct, ' with a nested struct field' do
|
|
432
489
|
LibTest.struct_align_nested_struct(@cs.to_ptr).should == 456
|
433
490
|
end
|
434
491
|
|
435
|
-
it 'should be able to assign struct instance to nested field' do
|
492
|
+
it 'should be able to assign struct instance to nested field' do
|
436
493
|
cs = LibTest::ContainerStruct.new(LibTest.struct_make_container_struct(123))
|
437
494
|
ns = LibTest::NestedStruct.new
|
438
495
|
ns[:i] = 567
|
@@ -540,15 +597,18 @@ describe FFI::Struct, ' by value' do
|
|
540
597
|
s = LibTest::S8S32.new
|
541
598
|
s[:s8] = 0x12
|
542
599
|
s[:s32] = 0x34567890
|
543
|
-
|
600
|
+
|
544
601
|
LibTest.struct_s8s32_s32_ret_s32(s, 0x1eefdead).should == 0x1eefdead
|
545
602
|
end
|
546
603
|
|
547
|
-
it 'parameter with following s64' do
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
604
|
+
# it 'parameter with following s64' do
|
605
|
+
# s = LibTest::S8S64.new
|
606
|
+
# s[:s8] = 0x12
|
607
|
+
# s[:s64] = 0x34567890
|
608
|
+
#
|
609
|
+
#
|
610
|
+
# LibTest.struct_s8s64_s64_ret_s64(s, 0x1eefdead1eefdead).should == 0x1eefdead1eefdead
|
611
|
+
# end
|
552
612
|
|
553
613
|
it 'parameter with preceding s32,ptr,s32' do
|
554
614
|
s = LibTest::S8S32.new
|
@@ -615,7 +675,7 @@ describe FFI::Struct, ' with an array field' do
|
|
615
675
|
end
|
616
676
|
it 'should allow iteration through the array elements' do
|
617
677
|
@s = LibTest::StructWithArray.new(LibTest.struct_make_struct_with_array(0, 1, 2, 3, 4))
|
618
|
-
@s[:a].each_with_index { |elem, i| elem.should == i }
|
678
|
+
@s[:a].each_with_index { |elem, i| elem.should == i }
|
619
679
|
end
|
620
680
|
it 'should return the pointer to the array' do
|
621
681
|
@s = LibTest::StructWithArray.new(LibTest.struct_make_struct_with_array(0, 1, 2, 3, 4))
|
@@ -652,7 +712,7 @@ describe 'BuggedStruct' do
|
|
652
712
|
end
|
653
713
|
it 'should return correct field/offset pairs' do
|
654
714
|
LibTest::BuggedStruct.offsets.sort do |a, b|
|
655
|
-
a[1] <=> b[1]
|
715
|
+
a[1] <=> b[1]
|
656
716
|
end.should == [[:visible, 0], [:x, 4], [:y, 8], [:rx, 12], [:ry, 14], [:order, 16], [:size, 17]]
|
657
717
|
end
|
658
718
|
end
|
@@ -702,7 +762,7 @@ describe "Struct allocation" do
|
|
702
762
|
end
|
703
763
|
struct = c.new
|
704
764
|
struct[:b] = ! struct[:b]
|
705
|
-
end.should_not raise_error
|
765
|
+
end.should_not raise_error Exception
|
706
766
|
end
|
707
767
|
|
708
768
|
end
|
@@ -713,7 +773,7 @@ describe "variable-length arrays" do
|
|
713
773
|
Class.new(FFI::Struct) do
|
714
774
|
layout :count, :int, :data, [ :char, 0 ]
|
715
775
|
end
|
716
|
-
}.should_not raise_error
|
776
|
+
}.should_not raise_error Exception
|
717
777
|
end
|
718
778
|
|
719
779
|
it "zero length array before last element should raise error" do
|
data/spec/ffi/typedef_spec.rb
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
7
|
+
require 'ffi'
|
8
|
+
|
7
9
|
describe "Custom type definitions" do
|
8
10
|
it "attach_function with custom typedef" do
|
9
11
|
module CustomTypedef
|
@@ -60,7 +62,12 @@ describe "Custom type definitions" do
|
|
60
62
|
typedef :int, :bar
|
61
63
|
|
62
64
|
ffi_lib TestLibrary::PATH
|
63
|
-
|
65
|
+
begin
|
66
|
+
attach_function :ptr_ret_int32_t, [ :string, :foo ], :bar
|
67
|
+
rescue FFI::NotFoundError
|
68
|
+
# NetBSD uses #define instead of typedef for these
|
69
|
+
attach_function :ptr_ret_int32_t, :ptr_ret___int32_t, [ :string, :foo ], :bar
|
70
|
+
end
|
64
71
|
end
|
65
72
|
end.should_not raise_error
|
66
73
|
end
|
@@ -70,8 +77,13 @@ describe "Custom type definitions" do
|
|
70
77
|
Module.new do
|
71
78
|
extend FFI::Library
|
72
79
|
ffi_lib "c"
|
73
|
-
|
74
|
-
|
80
|
+
if FFI::Platform.windows?
|
81
|
+
# _read() is a function of msvcrt.dll
|
82
|
+
attach_function :_read, [:int, :pointer, :uint], :int
|
83
|
+
else
|
84
|
+
# read(2) is a standard UNIX function
|
85
|
+
attach_function :read, [:int, :pointer, :size_t], :ssize_t
|
86
|
+
end
|
75
87
|
end
|
76
88
|
end.should_not raise_error
|
77
89
|
end
|
data/spec/ffi/union_spec.rb
CHANGED
data/spec/ffi/variadic_spec.rb
CHANGED
@@ -4,12 +4,30 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
7
|
+
require 'ffi'
|
8
|
+
|
7
9
|
describe "Function with variadic arguments" do
|
8
10
|
module LibTest
|
9
11
|
extend FFI::Library
|
10
12
|
ffi_lib TestLibrary::PATH
|
13
|
+
enum :enum_type1, [:c1, :c2]
|
14
|
+
enum :enum_type2, [:c3, 42, :c4]
|
11
15
|
attach_function :pack_varargs, [ :buffer_out, :string, :varargs ], :void
|
16
|
+
attach_function :pack_varargs2, [ :buffer_out, :enum_type1, :string, :varargs ], :enum_type1
|
17
|
+
end
|
18
|
+
|
19
|
+
it "takes enum arguments" do
|
20
|
+
buf = FFI::Buffer.new :long_long, 2
|
21
|
+
LibTest.pack_varargs(buf, "ii", :int, :c3, :int, :c4)
|
22
|
+
buf.get_int64(0).should == 42
|
23
|
+
buf.get_int64(8).should == 43
|
12
24
|
end
|
25
|
+
|
26
|
+
it "returns symbols for enums" do
|
27
|
+
buf = FFI::Buffer.new :long_long, 2
|
28
|
+
LibTest.pack_varargs2(buf, :c1, "ii", :int, :c3, :int, :c4).should eql(:c2)
|
29
|
+
end
|
30
|
+
|
13
31
|
[ 0, 127, -128, -1 ].each do |i|
|
14
32
|
it "call variadic with (:char (#{i})) argument" do
|
15
33
|
buf = FFI::Buffer.new :long_long
|
data/spec/spec.opts
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.5
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
@@ -9,45 +9,48 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2014-09-25 00:00:00 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
15
16
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
-
|
18
|
-
- ">="
|
18
|
+
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: "
|
21
|
-
type: :development
|
22
|
-
name: rake
|
20
|
+
version: "10.1"
|
23
21
|
prerelease: false
|
24
22
|
requirement: *id001
|
23
|
+
type: :development
|
25
24
|
- !ruby/object:Gem::Dependency
|
25
|
+
name: rake-compiler
|
26
26
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 0.
|
31
|
-
type: :development
|
32
|
-
name: rake-compiler
|
30
|
+
version: "0.9"
|
33
31
|
prerelease: false
|
34
32
|
requirement: *id002
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- *id003
|
39
33
|
type: :development
|
40
|
-
name: rspec
|
41
|
-
prerelease: false
|
42
|
-
requirement: *id004
|
43
34
|
- !ruby/object:Gem::Dependency
|
44
|
-
|
35
|
+
name: rspec
|
36
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
45
37
|
requirements:
|
46
|
-
-
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.14.1
|
41
|
+
prerelease: false
|
42
|
+
requirement: *id003
|
47
43
|
type: :development
|
44
|
+
- !ruby/object:Gem::Dependency
|
48
45
|
name: rubygems-tasks
|
46
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ~>
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 0.2.4
|
49
51
|
prerelease: false
|
50
|
-
requirement: *
|
52
|
+
requirement: *id004
|
53
|
+
type: :development
|
51
54
|
description: Ruby FFI library
|
52
55
|
email: wmeissner@gmail.com
|
53
56
|
executables: []
|
@@ -62,435 +65,456 @@ files:
|
|
62
65
|
- COPYING
|
63
66
|
- README.md
|
64
67
|
- Rakefile
|
65
|
-
- ext/ffi_c/
|
66
|
-
- ext/ffi_c/
|
67
|
-
- ext/ffi_c/
|
68
|
-
- ext/ffi_c/
|
69
|
-
- ext/ffi_c/Pointer.h
|
70
|
-
- ext/ffi_c/Call.h
|
71
|
-
- ext/ffi_c/Function.c
|
72
|
-
- ext/ffi_c/ClosurePool.h
|
73
|
-
- ext/ffi_c/Types.c
|
74
|
-
- ext/ffi_c/rbffi_endian.h
|
75
|
-
- ext/ffi_c/Thread.h
|
76
|
-
- ext/ffi_c/Function.h
|
68
|
+
- ext/ffi_c/AbstractMemory.c
|
69
|
+
- ext/ffi_c/AbstractMemory.h
|
70
|
+
- ext/ffi_c/ArrayType.c
|
71
|
+
- ext/ffi_c/ArrayType.h
|
77
72
|
- ext/ffi_c/Buffer.c
|
78
|
-
- ext/ffi_c/
|
79
|
-
- ext/ffi_c/
|
73
|
+
- ext/ffi_c/Call.c
|
74
|
+
- ext/ffi_c/Call.h
|
80
75
|
- ext/ffi_c/ClosurePool.c
|
76
|
+
- ext/ffi_c/ClosurePool.h
|
77
|
+
- ext/ffi_c/compat.h
|
81
78
|
- ext/ffi_c/DataConverter.c
|
82
|
-
- ext/ffi_c/MappedType.c
|
83
|
-
- ext/ffi_c/LongDouble.h
|
84
|
-
- ext/ffi_c/Variadic.c
|
85
|
-
- ext/ffi_c/StructByValue.h
|
86
|
-
- ext/ffi_c/StructByValue.c
|
87
|
-
- ext/ffi_c/win32/stdint.h
|
88
|
-
- ext/ffi_c/win32/stdbool.h
|
89
|
-
- ext/ffi_c/Struct.c
|
90
|
-
- ext/ffi_c/libffi.bsd.mk
|
91
|
-
- ext/ffi_c/ArrayType.c
|
92
|
-
- ext/ffi_c/extconf.rb
|
93
|
-
- ext/ffi_c/DynamicLibrary.h
|
94
|
-
- ext/ffi_c/Thread.c
|
95
79
|
- ext/ffi_c/DynamicLibrary.c
|
96
|
-
- ext/ffi_c/
|
97
|
-
- ext/ffi_c/
|
98
|
-
- ext/ffi_c/Struct.h
|
99
|
-
- ext/ffi_c/MethodHandle.h
|
100
|
-
- ext/ffi_c/libffi.vc64.mk
|
101
|
-
- ext/ffi_c/AbstractMemory.c
|
102
|
-
- ext/ffi_c/StructByReference.h
|
103
|
-
- ext/ffi_c/libffi.gnu.mk
|
104
|
-
- ext/ffi_c/LastError.c
|
80
|
+
- ext/ffi_c/DynamicLibrary.h
|
81
|
+
- ext/ffi_c/extconf.rb
|
105
82
|
- ext/ffi_c/ffi.c
|
106
|
-
- ext/ffi_c/
|
107
|
-
- ext/ffi_c/
|
108
|
-
- ext/ffi_c/libffi.vc.mk
|
109
|
-
- ext/ffi_c/Call.c
|
110
|
-
- ext/ffi_c/ArrayType.h
|
83
|
+
- ext/ffi_c/Function.c
|
84
|
+
- ext/ffi_c/Function.h
|
111
85
|
- ext/ffi_c/FunctionInfo.c
|
112
|
-
- ext/ffi_c/
|
113
|
-
- ext/ffi_c/
|
114
|
-
- ext/ffi_c/libffi.
|
115
|
-
- ext/ffi_c/libffi.
|
116
|
-
- ext/ffi_c/
|
117
|
-
- ext/ffi_c/
|
118
|
-
- ext/ffi_c/
|
119
|
-
- ext/ffi_c/
|
120
|
-
- ext/ffi_c/libffi/
|
121
|
-
- ext/ffi_c/libffi/
|
86
|
+
- ext/ffi_c/LastError.c
|
87
|
+
- ext/ffi_c/LastError.h
|
88
|
+
- ext/ffi_c/libffi/acinclude.m4
|
89
|
+
- ext/ffi_c/libffi/aclocal.m4
|
90
|
+
- ext/ffi_c/libffi/build-ios.sh
|
91
|
+
- ext/ffi_c/libffi/ChangeLog
|
92
|
+
- ext/ffi_c/libffi/ChangeLog.libffi
|
93
|
+
- ext/ffi_c/libffi/ChangeLog.libgcj
|
94
|
+
- ext/ffi_c/libffi/ChangeLog.v1
|
95
|
+
- ext/ffi_c/libffi/compile
|
96
|
+
- ext/ffi_c/libffi/config.guess
|
97
|
+
- ext/ffi_c/libffi/config.sub
|
98
|
+
- ext/ffi_c/libffi/configure
|
99
|
+
- ext/ffi_c/libffi/configure.ac
|
100
|
+
- ext/ffi_c/libffi/configure.host
|
101
|
+
- ext/ffi_c/libffi/depcomp
|
102
|
+
- ext/ffi_c/libffi/doc/libffi.info
|
103
|
+
- ext/ffi_c/libffi/doc/libffi.texi
|
104
|
+
- ext/ffi_c/libffi/doc/stamp-vti
|
105
|
+
- ext/ffi_c/libffi/doc/version.texi
|
106
|
+
- ext/ffi_c/libffi/fficonfig.h.in
|
122
107
|
- ext/ffi_c/libffi/fficonfig.hw
|
123
|
-
- ext/ffi_c/libffi/
|
124
|
-
- ext/ffi_c/libffi/
|
125
|
-
- ext/ffi_c/libffi/
|
126
|
-
- ext/ffi_c/libffi/
|
127
|
-
- ext/ffi_c/libffi/
|
128
|
-
- ext/ffi_c/libffi/
|
129
|
-
- ext/ffi_c/libffi/
|
130
|
-
- ext/ffi_c/libffi/
|
131
|
-
- ext/ffi_c/libffi/
|
132
|
-
- ext/ffi_c/libffi/
|
133
|
-
- ext/ffi_c/libffi/
|
134
|
-
- ext/ffi_c/libffi/
|
135
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/negint.c
|
136
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c
|
137
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c
|
138
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c
|
139
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c
|
140
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c
|
141
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c
|
142
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c
|
143
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c
|
144
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct7.c
|
145
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c
|
146
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c
|
147
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c
|
148
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c
|
149
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c
|
150
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c
|
151
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c
|
152
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct1.c
|
153
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c
|
154
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c
|
155
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/problem1.c
|
156
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c
|
157
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c
|
158
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c
|
159
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c
|
160
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct2.c
|
161
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c
|
162
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c
|
163
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c
|
164
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct5.c
|
165
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c
|
166
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
|
167
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c
|
168
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/float.c
|
169
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c
|
170
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/float2.c
|
171
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c
|
172
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c
|
173
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c
|
174
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c
|
175
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c
|
176
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c
|
177
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c
|
178
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c
|
179
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/float3.c
|
180
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c
|
181
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c
|
182
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c
|
183
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c
|
184
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c
|
185
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c
|
186
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/float4.c
|
187
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c
|
188
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c
|
189
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c
|
190
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c
|
191
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct8.c
|
192
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c
|
193
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c
|
194
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct4.c
|
195
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c
|
196
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c
|
197
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c
|
198
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c
|
199
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c
|
200
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c
|
201
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c
|
202
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c
|
203
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c
|
204
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c
|
205
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c
|
206
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c
|
207
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c
|
208
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c
|
209
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c
|
210
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c
|
211
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c
|
212
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c
|
213
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c
|
214
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/strlen.c
|
215
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c
|
216
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c
|
217
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c
|
218
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c
|
219
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c
|
220
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c
|
221
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c
|
222
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c
|
223
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c
|
224
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c
|
225
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c
|
226
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c
|
227
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c
|
228
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c
|
229
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c
|
230
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c
|
231
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c
|
232
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/float1.c
|
233
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c
|
234
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c
|
235
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/struct9.c
|
236
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c
|
237
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c
|
238
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c
|
239
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c
|
240
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c
|
241
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c
|
242
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c
|
243
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/many.c
|
244
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c
|
245
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/call.exp
|
246
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c
|
247
|
-
- ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h
|
248
|
-
- ext/ffi_c/libffi/testsuite/Makefile.am
|
249
|
-
- ext/ffi_c/libffi/testsuite/lib/wrapper.exp
|
250
|
-
- ext/ffi_c/libffi/testsuite/lib/libffi.exp
|
251
|
-
- ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp
|
252
|
-
- ext/ffi_c/libffi/testsuite/lib/target-libpath.exp
|
253
|
-
- ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h
|
254
|
-
- ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
|
255
|
-
- ext/ffi_c/libffi/testsuite/libffi.special/special.exp
|
256
|
-
- ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc
|
108
|
+
- ext/ffi_c/libffi/include/ffi.h.in
|
109
|
+
- ext/ffi_c/libffi/include/ffi.h.vc
|
110
|
+
- ext/ffi_c/libffi/include/ffi.h.vc64
|
111
|
+
- ext/ffi_c/libffi/include/ffi_common.h
|
112
|
+
- ext/ffi_c/libffi/include/Makefile.am
|
113
|
+
- ext/ffi_c/libffi/include/Makefile.in
|
114
|
+
- ext/ffi_c/libffi/install-sh
|
115
|
+
- ext/ffi_c/libffi/libffi.pc.in
|
116
|
+
- ext/ffi_c/libffi/libtool-version
|
117
|
+
- ext/ffi_c/libffi/LICENSE
|
118
|
+
- ext/ffi_c/libffi/ltmain.sh
|
119
|
+
- ext/ffi_c/libffi/m4/ax_cc_maxopt.m4
|
257
120
|
- ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4
|
258
121
|
- ext/ffi_c/libffi/m4/ax_check_compiler_flags.m4
|
259
|
-
- ext/ffi_c/libffi/m4/
|
260
|
-
- ext/ffi_c/libffi/m4/
|
261
|
-
- ext/ffi_c/libffi/m4/lt~obsolete.m4
|
122
|
+
- ext/ffi_c/libffi/m4/ax_compiler_vendor.m4
|
123
|
+
- ext/ffi_c/libffi/m4/ax_configure_args.m4
|
262
124
|
- ext/ffi_c/libffi/m4/ax_enable_builddir.m4
|
263
125
|
- ext/ffi_c/libffi/m4/ax_gcc_archflag.m4
|
264
|
-
- ext/ffi_c/libffi/m4/
|
265
|
-
- ext/ffi_c/libffi/m4/
|
126
|
+
- ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4
|
127
|
+
- ext/ffi_c/libffi/m4/libtool.m4
|
266
128
|
- ext/ffi_c/libffi/m4/ltoptions.m4
|
267
129
|
- ext/ffi_c/libffi/m4/ltsugar.m4
|
268
|
-
- ext/ffi_c/libffi/m4/
|
269
|
-
- ext/ffi_c/libffi/m4/
|
270
|
-
- ext/ffi_c/libffi/
|
271
|
-
- ext/ffi_c/libffi/
|
272
|
-
- ext/ffi_c/libffi/
|
273
|
-
- ext/ffi_c/libffi/
|
274
|
-
- ext/ffi_c/libffi/
|
275
|
-
- ext/ffi_c/libffi/
|
276
|
-
- ext/ffi_c/libffi/
|
277
|
-
- ext/ffi_c/libffi/
|
278
|
-
- ext/ffi_c/libffi/
|
279
|
-
- ext/ffi_c/libffi/
|
280
|
-
- ext/ffi_c/libffi/
|
281
|
-
- ext/ffi_c/libffi/
|
282
|
-
- ext/ffi_c/libffi/
|
130
|
+
- ext/ffi_c/libffi/m4/ltversion.m4
|
131
|
+
- ext/ffi_c/libffi/m4/lt~obsolete.m4
|
132
|
+
- ext/ffi_c/libffi/Makefile.am
|
133
|
+
- ext/ffi_c/libffi/Makefile.in
|
134
|
+
- ext/ffi_c/libffi/Makefile.vc
|
135
|
+
- ext/ffi_c/libffi/Makefile.vc64
|
136
|
+
- ext/ffi_c/libffi/man/ffi.3
|
137
|
+
- ext/ffi_c/libffi/man/ffi_call.3
|
138
|
+
- ext/ffi_c/libffi/man/ffi_prep_cif.3
|
139
|
+
- ext/ffi_c/libffi/man/Makefile.am
|
140
|
+
- ext/ffi_c/libffi/man/Makefile.in
|
141
|
+
- ext/ffi_c/libffi/mdate-sh
|
142
|
+
- ext/ffi_c/libffi/missing
|
143
|
+
- ext/ffi_c/libffi/msvcc.sh
|
144
|
+
- ext/ffi_c/libffi/README
|
145
|
+
- ext/ffi_c/libffi/src/alpha/ffi.c
|
146
|
+
- ext/ffi_c/libffi/src/alpha/ffitarget.h
|
147
|
+
- ext/ffi_c/libffi/src/alpha/osf.S
|
148
|
+
- ext/ffi_c/libffi/src/arm/ffi.c
|
283
149
|
- ext/ffi_c/libffi/src/arm/ffitarget.h
|
284
|
-
- ext/ffi_c/libffi/src/arm/trampoline.S
|
285
150
|
- ext/ffi_c/libffi/src/arm/gentramp.sh
|
286
|
-
- ext/ffi_c/libffi/src/arm/
|
287
|
-
- ext/ffi_c/libffi/src/
|
288
|
-
- ext/ffi_c/libffi/src/m32r/ffitarget.h
|
289
|
-
- ext/ffi_c/libffi/src/m32r/ffi.c
|
290
|
-
- ext/ffi_c/libffi/src/m68k/sysv.S
|
291
|
-
- ext/ffi_c/libffi/src/m68k/ffitarget.h
|
292
|
-
- ext/ffi_c/libffi/src/m68k/ffi.c
|
293
|
-
- ext/ffi_c/libffi/src/cris/sysv.S
|
294
|
-
- ext/ffi_c/libffi/src/cris/ffitarget.h
|
295
|
-
- ext/ffi_c/libffi/src/cris/ffi.c
|
296
|
-
- ext/ffi_c/libffi/src/s390/sysv.S
|
297
|
-
- ext/ffi_c/libffi/src/s390/ffitarget.h
|
298
|
-
- ext/ffi_c/libffi/src/s390/ffi.c
|
299
|
-
- ext/ffi_c/libffi/src/avr32/sysv.S
|
300
|
-
- ext/ffi_c/libffi/src/avr32/ffitarget.h
|
151
|
+
- ext/ffi_c/libffi/src/arm/sysv.S
|
152
|
+
- ext/ffi_c/libffi/src/arm/trampoline.S
|
301
153
|
- ext/ffi_c/libffi/src/avr32/ffi.c
|
302
|
-
- ext/ffi_c/libffi/src/
|
303
|
-
- ext/ffi_c/libffi/src/
|
154
|
+
- ext/ffi_c/libffi/src/avr32/ffitarget.h
|
155
|
+
- ext/ffi_c/libffi/src/avr32/sysv.S
|
156
|
+
- ext/ffi_c/libffi/src/closures.c
|
157
|
+
- ext/ffi_c/libffi/src/cris/ffi.c
|
158
|
+
- ext/ffi_c/libffi/src/cris/ffitarget.h
|
159
|
+
- ext/ffi_c/libffi/src/cris/sysv.S
|
160
|
+
- ext/ffi_c/libffi/src/debug.c
|
161
|
+
- ext/ffi_c/libffi/src/dlmalloc.c
|
304
162
|
- ext/ffi_c/libffi/src/frv/eabi.S
|
305
163
|
- ext/ffi_c/libffi/src/frv/ffi.c
|
306
|
-
- ext/ffi_c/libffi/src/
|
307
|
-
- ext/ffi_c/libffi/src/ia64/unix.S
|
308
|
-
- ext/ffi_c/libffi/src/ia64/ia64_flags.h
|
309
|
-
- ext/ffi_c/libffi/src/ia64/ffitarget.h
|
164
|
+
- ext/ffi_c/libffi/src/frv/ffitarget.h
|
310
165
|
- ext/ffi_c/libffi/src/ia64/ffi.c
|
311
|
-
- ext/ffi_c/libffi/src/
|
166
|
+
- ext/ffi_c/libffi/src/ia64/ffitarget.h
|
167
|
+
- ext/ffi_c/libffi/src/ia64/ia64_flags.h
|
168
|
+
- ext/ffi_c/libffi/src/ia64/unix.S
|
312
169
|
- ext/ffi_c/libffi/src/java_raw_api.c
|
313
|
-
- ext/ffi_c/libffi/src/
|
314
|
-
- ext/ffi_c/libffi/src/
|
315
|
-
- ext/ffi_c/libffi/src/
|
316
|
-
- ext/ffi_c/libffi/src/
|
317
|
-
- ext/ffi_c/libffi/src/
|
318
|
-
- ext/ffi_c/libffi/src/
|
319
|
-
- ext/ffi_c/libffi/src/pa/hpux32.S
|
320
|
-
- ext/ffi_c/libffi/src/pa/ffi.c
|
321
|
-
- ext/ffi_c/libffi/src/closures.c
|
322
|
-
- ext/ffi_c/libffi/src/sh64/sysv.S
|
323
|
-
- ext/ffi_c/libffi/src/sh64/ffitarget.h
|
324
|
-
- ext/ffi_c/libffi/src/sh64/ffi.c
|
325
|
-
- ext/ffi_c/libffi/src/debug.c
|
326
|
-
- ext/ffi_c/libffi/src/moxie/eabi.S
|
327
|
-
- ext/ffi_c/libffi/src/moxie/ffi.c
|
328
|
-
- ext/ffi_c/libffi/src/alpha/ffitarget.h
|
329
|
-
- ext/ffi_c/libffi/src/alpha/osf.S
|
330
|
-
- ext/ffi_c/libffi/src/alpha/ffi.c
|
331
|
-
- ext/ffi_c/libffi/src/mips/ffitarget.h
|
170
|
+
- ext/ffi_c/libffi/src/m32r/ffi.c
|
171
|
+
- ext/ffi_c/libffi/src/m32r/ffitarget.h
|
172
|
+
- ext/ffi_c/libffi/src/m32r/sysv.S
|
173
|
+
- ext/ffi_c/libffi/src/m68k/ffi.c
|
174
|
+
- ext/ffi_c/libffi/src/m68k/ffitarget.h
|
175
|
+
- ext/ffi_c/libffi/src/m68k/sysv.S
|
332
176
|
- ext/ffi_c/libffi/src/mips/ffi.c
|
177
|
+
- ext/ffi_c/libffi/src/mips/ffitarget.h
|
333
178
|
- ext/ffi_c/libffi/src/mips/n32.S
|
334
179
|
- ext/ffi_c/libffi/src/mips/o32.S
|
335
|
-
- ext/ffi_c/libffi/src/
|
336
|
-
- ext/ffi_c/libffi/src/
|
337
|
-
- ext/ffi_c/libffi/src/
|
338
|
-
- ext/ffi_c/libffi/src/
|
339
|
-
- ext/ffi_c/libffi/src/
|
340
|
-
- ext/ffi_c/libffi/src/
|
180
|
+
- ext/ffi_c/libffi/src/moxie/eabi.S
|
181
|
+
- ext/ffi_c/libffi/src/moxie/ffi.c
|
182
|
+
- ext/ffi_c/libffi/src/pa/ffi.c
|
183
|
+
- ext/ffi_c/libffi/src/pa/ffitarget.h
|
184
|
+
- ext/ffi_c/libffi/src/pa/hpux32.S
|
185
|
+
- ext/ffi_c/libffi/src/pa/linux.S
|
186
|
+
- ext/ffi_c/libffi/src/powerpc/aix.S
|
341
187
|
- ext/ffi_c/libffi/src/powerpc/aix_closure.S
|
188
|
+
- ext/ffi_c/libffi/src/powerpc/asm.h
|
189
|
+
- ext/ffi_c/libffi/src/powerpc/darwin.S
|
190
|
+
- ext/ffi_c/libffi/src/powerpc/darwin_closure.S
|
191
|
+
- ext/ffi_c/libffi/src/powerpc/ffi.c
|
192
|
+
- ext/ffi_c/libffi/src/powerpc/ffi_darwin.c
|
342
193
|
- ext/ffi_c/libffi/src/powerpc/ffitarget.h
|
194
|
+
- ext/ffi_c/libffi/src/powerpc/linux64.S
|
343
195
|
- ext/ffi_c/libffi/src/powerpc/linux64_closure.S
|
344
|
-
- ext/ffi_c/libffi/src/powerpc/ffi.c
|
345
196
|
- ext/ffi_c/libffi/src/powerpc/ppc_closure.S
|
346
|
-
- ext/ffi_c/libffi/src/powerpc/
|
347
|
-
- ext/ffi_c/libffi/src/
|
348
|
-
- ext/ffi_c/libffi/src/
|
349
|
-
- ext/ffi_c/libffi/src/
|
197
|
+
- ext/ffi_c/libffi/src/powerpc/sysv.S
|
198
|
+
- ext/ffi_c/libffi/src/prep_cif.c
|
199
|
+
- ext/ffi_c/libffi/src/raw_api.c
|
200
|
+
- ext/ffi_c/libffi/src/s390/ffi.c
|
201
|
+
- ext/ffi_c/libffi/src/s390/ffitarget.h
|
202
|
+
- ext/ffi_c/libffi/src/s390/sysv.S
|
350
203
|
- ext/ffi_c/libffi/src/sh/ffi.c
|
351
|
-
- ext/ffi_c/libffi/
|
352
|
-
- ext/ffi_c/libffi/
|
353
|
-
- ext/ffi_c/libffi/
|
354
|
-
- ext/ffi_c/libffi/
|
355
|
-
- ext/ffi_c/libffi/
|
356
|
-
- ext/ffi_c/libffi/
|
357
|
-
- ext/ffi_c/libffi/
|
358
|
-
- ext/ffi_c/libffi/
|
359
|
-
- ext/ffi_c/libffi/
|
360
|
-
- ext/ffi_c/libffi/
|
361
|
-
- ext/ffi_c/libffi/
|
362
|
-
- ext/ffi_c/libffi/
|
363
|
-
- ext/ffi_c/libffi/
|
364
|
-
- ext/ffi_c/libffi/
|
365
|
-
- ext/ffi_c/libffi/
|
366
|
-
- ext/ffi_c/libffi/
|
367
|
-
- ext/ffi_c/libffi/
|
368
|
-
- ext/ffi_c/libffi/
|
369
|
-
- ext/ffi_c/libffi/
|
370
|
-
- ext/ffi_c/libffi/
|
371
|
-
- ext/ffi_c/libffi/
|
372
|
-
- ext/ffi_c/libffi/
|
373
|
-
- ext/ffi_c/libffi/
|
374
|
-
- ext/ffi_c/libffi/
|
375
|
-
- ext/ffi_c/libffi/
|
376
|
-
- ext/ffi_c/libffi/
|
377
|
-
- ext/ffi_c/libffi/
|
378
|
-
- ext/ffi_c/libffi/
|
379
|
-
- ext/ffi_c/libffi/
|
204
|
+
- ext/ffi_c/libffi/src/sh/ffitarget.h
|
205
|
+
- ext/ffi_c/libffi/src/sh/sysv.S
|
206
|
+
- ext/ffi_c/libffi/src/sh64/ffi.c
|
207
|
+
- ext/ffi_c/libffi/src/sh64/ffitarget.h
|
208
|
+
- ext/ffi_c/libffi/src/sh64/sysv.S
|
209
|
+
- ext/ffi_c/libffi/src/sparc/ffi.c
|
210
|
+
- ext/ffi_c/libffi/src/sparc/ffitarget.h
|
211
|
+
- ext/ffi_c/libffi/src/sparc/v8.S
|
212
|
+
- ext/ffi_c/libffi/src/sparc/v9.S
|
213
|
+
- ext/ffi_c/libffi/src/types.c
|
214
|
+
- ext/ffi_c/libffi/src/x86/darwin.S
|
215
|
+
- ext/ffi_c/libffi/src/x86/darwin64.S
|
216
|
+
- ext/ffi_c/libffi/src/x86/ffi.c
|
217
|
+
- ext/ffi_c/libffi/src/x86/ffi64.c
|
218
|
+
- ext/ffi_c/libffi/src/x86/ffitarget.h
|
219
|
+
- ext/ffi_c/libffi/src/x86/freebsd.S
|
220
|
+
- ext/ffi_c/libffi/src/x86/sysv.S
|
221
|
+
- ext/ffi_c/libffi/src/x86/unix64.S
|
222
|
+
- ext/ffi_c/libffi/src/x86/win32.S
|
223
|
+
- ext/ffi_c/libffi/src/x86/win64.S
|
224
|
+
- ext/ffi_c/libffi/testsuite/config/default.exp
|
225
|
+
- ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp
|
226
|
+
- ext/ffi_c/libffi/testsuite/lib/libffi.exp
|
227
|
+
- ext/ffi_c/libffi/testsuite/lib/target-libpath.exp
|
228
|
+
- ext/ffi_c/libffi/testsuite/lib/wrapper.exp
|
229
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct2.c
|
230
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct3.c
|
231
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct4.c
|
232
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct5.c
|
233
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct6.c
|
234
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct7.c
|
235
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct8.c
|
236
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct9.c
|
237
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c
|
238
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/call.exp
|
239
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c
|
240
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c
|
241
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c
|
242
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c
|
243
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c
|
244
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c
|
245
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c
|
246
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c
|
247
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c
|
248
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c
|
249
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c
|
250
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c
|
251
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c
|
252
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c
|
253
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c
|
254
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c
|
255
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c
|
256
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c
|
257
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c
|
258
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c
|
259
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c
|
260
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c
|
261
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c
|
262
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c
|
263
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c
|
264
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c
|
265
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c
|
266
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c
|
267
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c
|
268
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c
|
269
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c
|
270
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c
|
271
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c
|
272
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c
|
273
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c
|
274
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c
|
275
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c
|
276
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c
|
277
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c
|
278
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c
|
279
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c
|
280
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c
|
281
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c
|
282
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c
|
283
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c
|
284
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c
|
285
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c
|
286
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c
|
287
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c
|
288
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c
|
289
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c
|
290
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c
|
291
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c
|
292
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
|
293
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c
|
294
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c
|
295
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c
|
296
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c
|
297
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c
|
298
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c
|
299
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c
|
300
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c
|
301
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c
|
302
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c
|
303
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c
|
304
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c
|
305
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c
|
306
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c
|
307
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h
|
308
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/float.c
|
309
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/float1.c
|
310
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/float2.c
|
311
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/float3.c
|
312
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/float4.c
|
313
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c
|
314
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/many.c
|
315
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c
|
316
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/negint.c
|
317
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c
|
318
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c
|
319
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c
|
320
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c
|
321
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c
|
322
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c
|
323
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c
|
324
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c
|
325
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c
|
326
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c
|
327
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c
|
328
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/problem1.c
|
329
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/promotion.c
|
330
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c
|
331
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c
|
332
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c
|
333
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c
|
334
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c
|
335
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c
|
336
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c
|
337
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c
|
338
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c
|
339
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c
|
340
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c
|
341
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c
|
342
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c
|
343
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c
|
344
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c
|
345
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c
|
346
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c
|
347
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c
|
348
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c
|
349
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/strlen.c
|
350
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c
|
351
|
+
- ext/ffi_c/libffi/testsuite/libffi.call/struct1.c
|
352
|
+
- ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h
|
353
|
+
- ext/ffi_c/libffi/testsuite/libffi.special/special.exp
|
354
|
+
- ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc
|
355
|
+
- ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
|
356
|
+
- ext/ffi_c/libffi/testsuite/Makefile.am
|
357
|
+
- ext/ffi_c/libffi/testsuite/Makefile.in
|
380
358
|
- ext/ffi_c/libffi/texinfo.tex
|
381
|
-
- ext/ffi_c/libffi
|
382
|
-
- ext/ffi_c/libffi
|
383
|
-
- ext/ffi_c/libffi
|
384
|
-
- ext/ffi_c/libffi
|
385
|
-
- ext/ffi_c/libffi
|
386
|
-
- ext/ffi_c/libffi
|
387
|
-
- ext/ffi_c/
|
388
|
-
- ext/ffi_c/
|
389
|
-
- ext/ffi_c/
|
390
|
-
- ext/ffi_c/
|
359
|
+
- ext/ffi_c/libffi.bsd.mk
|
360
|
+
- ext/ffi_c/libffi.darwin.mk
|
361
|
+
- ext/ffi_c/libffi.gnu.mk
|
362
|
+
- ext/ffi_c/libffi.mk
|
363
|
+
- ext/ffi_c/libffi.vc.mk
|
364
|
+
- ext/ffi_c/libffi.vc64.mk
|
365
|
+
- ext/ffi_c/LongDouble.c
|
366
|
+
- ext/ffi_c/LongDouble.h
|
367
|
+
- ext/ffi_c/MappedType.c
|
368
|
+
- ext/ffi_c/MappedType.h
|
369
|
+
- ext/ffi_c/MemoryPointer.c
|
370
|
+
- ext/ffi_c/MemoryPointer.h
|
371
|
+
- ext/ffi_c/MethodHandle.c
|
372
|
+
- ext/ffi_c/MethodHandle.h
|
373
|
+
- ext/ffi_c/Platform.c
|
374
|
+
- ext/ffi_c/Platform.h
|
375
|
+
- ext/ffi_c/Pointer.c
|
376
|
+
- ext/ffi_c/Pointer.h
|
377
|
+
- ext/ffi_c/rbffi.h
|
378
|
+
- ext/ffi_c/rbffi_endian.h
|
379
|
+
- ext/ffi_c/Struct.c
|
380
|
+
- ext/ffi_c/Struct.h
|
381
|
+
- ext/ffi_c/StructByReference.c
|
382
|
+
- ext/ffi_c/StructByReference.h
|
383
|
+
- ext/ffi_c/StructByValue.c
|
384
|
+
- ext/ffi_c/StructByValue.h
|
391
385
|
- ext/ffi_c/StructLayout.c
|
386
|
+
- ext/ffi_c/Thread.c
|
387
|
+
- ext/ffi_c/Thread.h
|
388
|
+
- ext/ffi_c/Type.c
|
389
|
+
- ext/ffi_c/Type.h
|
390
|
+
- ext/ffi_c/Types.c
|
391
|
+
- ext/ffi_c/Types.h
|
392
|
+
- ext/ffi_c/Variadic.c
|
393
|
+
- ext/ffi_c/win32/stdbool.h
|
394
|
+
- ext/ffi_c/win32/stdint.h
|
392
395
|
- gen/Rakefile
|
393
|
-
- lib/ffi.rb
|
394
|
-
- lib/ffi/
|
395
|
-
- lib/ffi/struct.rb
|
396
|
+
- lib/ffi/autopointer.rb
|
397
|
+
- lib/ffi/buffer.rb
|
396
398
|
- lib/ffi/callback.rb
|
397
|
-
- lib/ffi/pointer.rb
|
398
|
-
- lib/ffi/errno.rb
|
399
399
|
- lib/ffi/enum.rb
|
400
|
-
- lib/ffi/
|
401
|
-
- lib/ffi/platform.rb
|
402
|
-
- lib/ffi/tools/types_generator.rb
|
403
|
-
- lib/ffi/tools/generator_task.rb
|
404
|
-
- lib/ffi/tools/struct_generator.rb
|
405
|
-
- lib/ffi/tools/generator.rb
|
406
|
-
- lib/ffi/tools/const_generator.rb
|
400
|
+
- lib/ffi/errno.rb
|
407
401
|
- lib/ffi/ffi.rb
|
408
|
-
- lib/ffi/
|
402
|
+
- lib/ffi/io.rb
|
409
403
|
- lib/ffi/library.rb
|
410
|
-
- lib/ffi/
|
411
|
-
- lib/ffi/
|
412
|
-
- lib/ffi/
|
413
|
-
- lib/ffi/
|
414
|
-
- lib/ffi/platform/
|
404
|
+
- lib/ffi/managedstruct.rb
|
405
|
+
- lib/ffi/memorypointer.rb
|
406
|
+
- lib/ffi/platform/arm-linux/types.conf
|
407
|
+
- lib/ffi/platform/i386-cygwin/types.conf
|
408
|
+
- lib/ffi/platform/i386-darwin/types.conf
|
409
|
+
- lib/ffi/platform/i386-freebsd/types.conf
|
415
410
|
- lib/ffi/platform/i386-gnu/types.conf
|
416
|
-
- lib/ffi/platform/
|
417
|
-
- lib/ffi/platform/
|
418
|
-
- lib/ffi/platform/x86_64-openbsd/types.conf
|
419
|
-
- lib/ffi/platform/i386-windows/types.conf
|
420
|
-
- lib/ffi/platform/i386-solaris/types.conf
|
421
|
-
- lib/ffi/platform/x86_64-netbsd/types.conf
|
411
|
+
- lib/ffi/platform/i386-linux/types.conf
|
412
|
+
- lib/ffi/platform/i386-netbsd/types.conf
|
422
413
|
- lib/ffi/platform/i386-openbsd/types.conf
|
414
|
+
- lib/ffi/platform/i386-solaris/types.conf
|
415
|
+
- lib/ffi/platform/i386-windows/types.conf
|
416
|
+
- lib/ffi/platform/ia64-linux/types.conf
|
417
|
+
- lib/ffi/platform/mips-linux/types.conf
|
423
418
|
- lib/ffi/platform/mipsel-linux/types.conf
|
424
|
-
- lib/ffi/platform/s390x-linux/types.conf
|
425
419
|
- lib/ffi/platform/powerpc-aix/types.conf
|
426
|
-
- lib/ffi/platform/
|
427
|
-
- lib/ffi/platform/i386-netbsd/types.conf
|
428
|
-
- lib/ffi/platform/i386-freebsd/types.conf
|
429
|
-
- lib/ffi/platform/s390-linux/types.conf
|
420
|
+
- lib/ffi/platform/powerpc-darwin/types.conf
|
430
421
|
- lib/ffi/platform/powerpc-linux/types.conf
|
422
|
+
- lib/ffi/platform/s390-linux/types.conf
|
423
|
+
- lib/ffi/platform/s390x-linux/types.conf
|
424
|
+
- lib/ffi/platform/sparc-linux/types.conf
|
431
425
|
- lib/ffi/platform/sparc-solaris/types.conf
|
432
|
-
- lib/ffi/platform/x86_64-solaris/types.conf
|
433
|
-
- lib/ffi/platform/mips-linux/types.conf
|
434
|
-
- lib/ffi/platform/x86_64-windows/types.conf
|
435
|
-
- lib/ffi/platform/x86_64-linux/types.conf
|
436
|
-
- lib/ffi/platform/powerpc-darwin/types.conf
|
437
|
-
- lib/ffi/platform/i386-linux/types.conf
|
438
|
-
- lib/ffi/platform/x86_64-freebsd/types.conf
|
439
|
-
- lib/ffi/platform/arm-linux/types.conf
|
440
|
-
- lib/ffi/platform/i386-darwin/types.conf
|
441
426
|
- lib/ffi/platform/sparcv9-solaris/types.conf
|
442
427
|
- lib/ffi/platform/x86_64-cygwin/types.conf
|
428
|
+
- lib/ffi/platform/x86_64-darwin/types.conf
|
429
|
+
- lib/ffi/platform/x86_64-freebsd/types.conf
|
430
|
+
- lib/ffi/platform/x86_64-linux/types.conf
|
431
|
+
- lib/ffi/platform/x86_64-netbsd/types.conf
|
432
|
+
- lib/ffi/platform/x86_64-openbsd/types.conf
|
433
|
+
- lib/ffi/platform/x86_64-solaris/types.conf
|
434
|
+
- lib/ffi/platform/x86_64-windows/types.conf
|
435
|
+
- lib/ffi/platform.rb
|
436
|
+
- lib/ffi/pointer.rb
|
437
|
+
- lib/ffi/struct.rb
|
443
438
|
- lib/ffi/struct_layout_builder.rb
|
444
|
-
- lib/ffi/
|
445
|
-
- lib/ffi/
|
446
|
-
-
|
447
|
-
-
|
448
|
-
-
|
449
|
-
-
|
439
|
+
- lib/ffi/tools/const_generator.rb
|
440
|
+
- lib/ffi/tools/generator.rb
|
441
|
+
- lib/ffi/tools/generator_task.rb
|
442
|
+
- lib/ffi/tools/struct_generator.rb
|
443
|
+
- lib/ffi/tools/types_generator.rb
|
444
|
+
- lib/ffi/types.rb
|
445
|
+
- lib/ffi/union.rb
|
446
|
+
- lib/ffi/variadic.rb
|
447
|
+
- lib/ffi/version.rb
|
448
|
+
- lib/ffi.rb
|
449
|
+
- spec/ffi/async_callback_spec.rb
|
450
|
+
- spec/ffi/bool_spec.rb
|
451
|
+
- spec/ffi/buffer_spec.rb
|
452
|
+
- spec/ffi/callback_spec.rb
|
450
453
|
- spec/ffi/custom_param_type.rb
|
454
|
+
- spec/ffi/custom_type_spec.rb
|
455
|
+
- spec/ffi/dup_spec.rb
|
456
|
+
- spec/ffi/enum_spec.rb
|
457
|
+
- spec/ffi/errno_spec.rb
|
458
|
+
- spec/ffi/ffi_spec.rb
|
459
|
+
- spec/ffi/fixtures/Benchmark.c
|
460
|
+
- spec/ffi/fixtures/BoolTest.c
|
461
|
+
- spec/ffi/fixtures/BufferTest.c
|
462
|
+
- spec/ffi/fixtures/classes.rb
|
463
|
+
- spec/ffi/fixtures/ClosureTest.c
|
464
|
+
- spec/ffi/fixtures/EnumTest.c
|
465
|
+
- spec/ffi/fixtures/FunctionTest.c
|
466
|
+
- spec/ffi/fixtures/GlobalVariable.c
|
467
|
+
- spec/ffi/fixtures/GNUmakefile
|
468
|
+
- spec/ffi/fixtures/LastErrorTest.c
|
469
|
+
- spec/ffi/fixtures/NumberTest.c
|
470
|
+
- spec/ffi/fixtures/PointerTest.c
|
471
|
+
- spec/ffi/fixtures/ReferenceTest.c
|
472
|
+
- spec/ffi/fixtures/StringTest.c
|
473
|
+
- spec/ffi/fixtures/StructTest.c
|
474
|
+
- spec/ffi/fixtures/UnionTest.c
|
475
|
+
- spec/ffi/fixtures/VariadicTest.c
|
451
476
|
- spec/ffi/function_spec.rb
|
452
|
-
- spec/ffi/
|
453
|
-
- spec/ffi/
|
477
|
+
- spec/ffi/io_spec.rb
|
478
|
+
- spec/ffi/library_spec.rb
|
479
|
+
- spec/ffi/LICENSE.SPECS
|
480
|
+
- spec/ffi/long_double.rb
|
454
481
|
- spec/ffi/managed_struct_spec.rb
|
455
|
-
- spec/ffi/
|
456
|
-
- spec/ffi/
|
482
|
+
- spec/ffi/memorypointer_spec.rb
|
483
|
+
- spec/ffi/number_spec.rb
|
484
|
+
- spec/ffi/platform_spec.rb
|
485
|
+
- spec/ffi/pointer_spec.rb
|
486
|
+
- spec/ffi/rbx/attach_function_spec.rb
|
457
487
|
- spec/ffi/rbx/memory_pointer_spec.rb
|
458
488
|
- spec/ffi/rbx/spec_helper.rb
|
459
|
-
- spec/ffi/rbx/
|
460
|
-
- spec/ffi/bool_spec.rb
|
461
|
-
- spec/ffi/errno_spec.rb
|
462
|
-
- spec/ffi/struct_by_ref_spec.rb
|
489
|
+
- spec/ffi/rbx/struct_spec.rb
|
463
490
|
- spec/ffi/spec_helper.rb
|
464
|
-
- spec/ffi/
|
491
|
+
- spec/ffi/string_spec.rb
|
492
|
+
- spec/ffi/strptr_spec.rb
|
493
|
+
- spec/ffi/struct_by_ref_spec.rb
|
494
|
+
- spec/ffi/struct_callback_spec.rb
|
465
495
|
- spec/ffi/struct_initialize_spec.rb
|
496
|
+
- spec/ffi/struct_packed_spec.rb
|
497
|
+
- spec/ffi/struct_spec.rb
|
466
498
|
- spec/ffi/typedef_spec.rb
|
467
|
-
- spec/ffi/
|
468
|
-
- spec/ffi/async_callback_spec.rb
|
469
|
-
- spec/ffi/long_double.rb
|
470
|
-
- spec/ffi/library_spec.rb
|
471
|
-
- spec/ffi/dup_spec.rb
|
472
|
-
- spec/ffi/custom_type_spec.rb
|
473
|
-
- spec/ffi/struct_callback_spec.rb
|
474
|
-
- spec/ffi/ffi_spec.rb
|
475
|
-
- spec/ffi/enum_spec.rb
|
499
|
+
- spec/ffi/union_spec.rb
|
476
500
|
- spec/ffi/variadic_spec.rb
|
477
|
-
- spec/
|
478
|
-
- libtest/
|
479
|
-
- libtest/StructTest.c
|
480
|
-
- libtest/VariadicTest.c
|
481
|
-
- libtest/StringTest.c
|
482
|
-
- libtest/GNUmakefile
|
501
|
+
- spec/spec.opts
|
502
|
+
- libtest/Benchmark.c
|
483
503
|
- libtest/BoolTest.c
|
484
504
|
- libtest/BufferTest.c
|
485
|
-
- libtest/NumberTest.c
|
486
|
-
- libtest/GlobalVariable.c
|
487
|
-
- libtest/LastErrorTest.c
|
488
505
|
- libtest/ClosureTest.c
|
489
506
|
- libtest/EnumTest.c
|
490
507
|
- libtest/FunctionTest.c
|
508
|
+
- libtest/GlobalVariable.c
|
509
|
+
- libtest/GNUmakefile
|
510
|
+
- libtest/LastErrorTest.c
|
511
|
+
- libtest/NumberTest.c
|
491
512
|
- libtest/PointerTest.c
|
492
|
-
- libtest/Benchmark.c
|
493
513
|
- libtest/ReferenceTest.c
|
514
|
+
- libtest/StringTest.c
|
515
|
+
- libtest/StructTest.c
|
516
|
+
- libtest/UnionTest.c
|
517
|
+
- libtest/VariadicTest.c
|
494
518
|
- lib/1.8/ffi_c.so
|
495
519
|
- lib/1.9/ffi_c.so
|
496
520
|
- lib/2.0/ffi_c.so
|
@@ -513,11 +537,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
513
537
|
version: 1.8.7
|
514
538
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
515
539
|
requirements:
|
516
|
-
-
|
540
|
+
- - ">="
|
541
|
+
- !ruby/object:Gem::Version
|
542
|
+
version: "0"
|
517
543
|
requirements: []
|
518
544
|
|
519
545
|
rubyforge_project:
|
520
|
-
rubygems_version: 2.0.
|
546
|
+
rubygems_version: 2.0.14
|
521
547
|
signing_key:
|
522
548
|
specification_version: 4
|
523
549
|
summary: Ruby FFI
|