ffi 1.17.0.rc1 → 1.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +15 -1
- data/Gemfile +1 -1
- data/ext/ffi_c/AbstractMemory.c +1 -0
- data/ext/ffi_c/FunctionInfo.c +1 -1
- data/ext/ffi_c/StructLayout.c +7 -7
- data/ext/ffi_c/Variadic.c +1 -1
- data/ext/ffi_c/libffi/ltmain.sh +2 -2
- data/lib/ffi/autopointer.rb +1 -9
- data/lib/ffi/version.rb +1 -1
- data/sig/ffi/abstract_memory.rbs +1 -0
- data.tar.gz.sig +0 -0
- metadata +3 -6
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 482fe808cf14286b91be92938712e98f6332021d2773268f96ac583b5c264fc9
|
4
|
+
data.tar.gz: f89f881dd5e337ec5ec815e9977158b54ead3a2480bc03fd2591477c7872d29e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 877625d5994e1b456e8cf12a68647ce4e9d64efac2239c7a4e1806406b803fad5c1138ba0ad7e8b34ac6b8ebfeaed9f469381291f394527c523c4db8f36bd976
|
7
|
+
data.tar.gz: 8d78610fc0c110ad7d6da40158dab176d815c8008a1276865b9112a44b46e1d43816db7430f9ab991671e4e8fad4dec0880fa259e2e2c83afaf916f59b7bb5c9
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,18 @@
|
|
1
|
-
1.17.0
|
1
|
+
1.17.0 / 2024-06-02
|
2
|
+
-------------------
|
3
|
+
|
4
|
+
Fixed:
|
5
|
+
* Add FFI::AbstractMemory#read_array_of_string . It was defined but not exposed to Ruby nor tested. #1070
|
6
|
+
|
7
|
+
|
8
|
+
1.17.0.rc2 / 2024-04-22
|
9
|
+
-------------------
|
10
|
+
|
11
|
+
Fixed:
|
12
|
+
* Add missing write barriers to StructLayout#initialize causing a segfault with GC.stress. #1079
|
13
|
+
|
14
|
+
|
15
|
+
1.17.0.rc1 / 2024-04-08
|
2
16
|
-------------------
|
3
17
|
|
4
18
|
Fixed:
|
data/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem 'bigdecimal'
|
4
|
+
gem 'bigdecimal' # necessary on ruby-3.3+
|
5
5
|
gem 'bundler', '>= 1.16', '< 3'
|
6
6
|
gem 'rake', '~> 13.0'
|
7
7
|
gem 'rake-compiler', '~> 1.1'
|
data/ext/ffi_c/AbstractMemory.c
CHANGED
@@ -1109,6 +1109,7 @@ rbffi_AbstractMemory_Init(VALUE moduleFFI)
|
|
1109
1109
|
rb_define_method(classMemory, "read_bytes", memory_read_bytes, 1);
|
1110
1110
|
rb_define_method(classMemory, "write_bytes", memory_write_bytes, -1);
|
1111
1111
|
rb_define_method(classMemory, "get_array_of_string", memory_get_array_of_string, -1);
|
1112
|
+
rb_define_method(classMemory, "read_array_of_string", memory_read_array_of_string, -1);
|
1112
1113
|
|
1113
1114
|
rb_define_method(classMemory, "get", memory_get, 2);
|
1114
1115
|
rb_define_method(classMemory, "put", memory_put, 3);
|
data/ext/ffi_c/FunctionInfo.c
CHANGED
@@ -183,7 +183,7 @@ fntype_initialize(int argc, VALUE* argv, VALUE self)
|
|
183
183
|
Check_Type(rbParamTypes, T_ARRAY);
|
184
184
|
|
185
185
|
TypedData_Get_Struct(self, FunctionType, &rbffi_fntype_data_type, fnInfo);
|
186
|
-
fnInfo->parameterCount = (
|
186
|
+
fnInfo->parameterCount = RARRAY_LENINT(rbParamTypes);
|
187
187
|
fnInfo->parameterTypes = xcalloc(fnInfo->parameterCount, sizeof(*fnInfo->parameterTypes));
|
188
188
|
fnInfo->ffiParameterTypes = xcalloc(fnInfo->parameterCount, sizeof(ffi_type *));
|
189
189
|
fnInfo->nativeParameterTypes = xcalloc(fnInfo->parameterCount, sizeof(*fnInfo->nativeParameterTypes));
|
data/ext/ffi_c/StructLayout.c
CHANGED
@@ -460,9 +460,9 @@ struct_layout_allocate(VALUE klass)
|
|
460
460
|
VALUE obj;
|
461
461
|
|
462
462
|
obj = TypedData_Make_Struct(klass, StructLayout, &rbffi_struct_layout_data_type, layout);
|
463
|
-
layout->rbFieldMap
|
464
|
-
layout->rbFieldNames
|
465
|
-
layout->rbFields
|
463
|
+
RB_OBJ_WRITE(obj, &layout->rbFieldMap, Qnil);
|
464
|
+
RB_OBJ_WRITE(obj, &layout->rbFieldNames, Qnil);
|
465
|
+
RB_OBJ_WRITE(obj, &layout->rbFields, Qnil);
|
466
466
|
layout->base.ffiType = xcalloc(1, sizeof(*layout->base.ffiType));
|
467
467
|
layout->base.ffiType->size = 0;
|
468
468
|
layout->base.ffiType->alignment = 0;
|
@@ -487,14 +487,14 @@ struct_layout_initialize(VALUE self, VALUE fields, VALUE size, VALUE align)
|
|
487
487
|
int i;
|
488
488
|
|
489
489
|
TypedData_Get_Struct(self, StructLayout, &rbffi_struct_layout_data_type, layout);
|
490
|
-
layout->fieldCount = (
|
491
|
-
layout->rbFieldMap
|
492
|
-
layout->rbFieldNames
|
490
|
+
layout->fieldCount = RARRAY_LENINT(fields);
|
491
|
+
RB_OBJ_WRITE(self, &layout->rbFieldMap, rb_hash_new());
|
492
|
+
RB_OBJ_WRITE(self, &layout->rbFieldNames, rb_ary_new2(layout->fieldCount));
|
493
493
|
layout->size = (int) FFI_ALIGN(NUM2INT(size), NUM2INT(align));
|
494
494
|
layout->align = NUM2INT(align);
|
495
495
|
layout->fields = xcalloc(layout->fieldCount, sizeof(StructField *));
|
496
496
|
layout->ffiTypes = xcalloc(layout->fieldCount + 1, sizeof(ffi_type *));
|
497
|
-
layout->rbFields
|
497
|
+
RB_OBJ_WRITE(self, &layout->rbFields, rb_ary_new2(layout->fieldCount));
|
498
498
|
layout->referenceFieldCount = 0;
|
499
499
|
layout->base.ffiType->elements = layout->ffiTypes;
|
500
500
|
layout->base.ffiType->size = layout->size;
|
data/ext/ffi_c/Variadic.c
CHANGED
@@ -211,7 +211,7 @@ variadic_invoke(VALUE self, VALUE parameterTypes, VALUE parameterValues)
|
|
211
211
|
Check_Type(parameterValues, T_ARRAY);
|
212
212
|
|
213
213
|
TypedData_Get_Struct(self, VariadicInvoker, &variadic_data_type, invoker);
|
214
|
-
paramCount = (
|
214
|
+
paramCount = RARRAY_LENINT(parameterTypes);
|
215
215
|
paramTypes = ALLOCA_N(Type *, paramCount);
|
216
216
|
ffiParamTypes = ALLOCA_N(ffi_type *, paramCount);
|
217
217
|
params = ALLOCA_N(FFIStorage, paramCount);
|
data/ext/ffi_c/libffi/ltmain.sh
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
|
32
32
|
PROGRAM=libtool
|
33
33
|
PACKAGE=libtool
|
34
|
-
VERSION="2.4.7 Debian-2.4.7-
|
34
|
+
VERSION="2.4.7 Debian-2.4.7-7build1"
|
35
35
|
package_revision=2.4.7
|
36
36
|
|
37
37
|
|
@@ -2296,7 +2296,7 @@ include the following information:
|
|
2296
2296
|
compiler: $LTCC
|
2297
2297
|
compiler flags: $LTCFLAGS
|
2298
2298
|
linker: $LD (gnu? $with_gnu_ld)
|
2299
|
-
version: $progname $scriptversion Debian-2.4.7-
|
2299
|
+
version: $progname $scriptversion Debian-2.4.7-7build1
|
2300
2300
|
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
|
2301
2301
|
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
|
2302
2302
|
|
data/lib/ffi/autopointer.rb
CHANGED
@@ -45,14 +45,6 @@ module FFI
|
|
45
45
|
# @note WARNING: passing a proc _may_ cause your pointer to never be
|
46
46
|
# GC'd, unless you're careful to avoid trapping a reference to the
|
47
47
|
# pointer in the proc. See the test specs for examples.
|
48
|
-
# @overload initialize(pointer) { |p| ... }
|
49
|
-
# @param pointer [Pointer]
|
50
|
-
# @yieldparam [Pointer] p +pointer+ passed to the block
|
51
|
-
# @return [self]
|
52
|
-
# The passed block will be invoked at GC time.
|
53
|
-
# @note
|
54
|
-
# WARNING: passing a block will cause your pointer to never be GC'd.
|
55
|
-
# This is bad.
|
56
48
|
# @overload initialize(pointer)
|
57
49
|
# @param pointer [Pointer]
|
58
50
|
# @return [self]
|
@@ -75,7 +67,7 @@ module FFI
|
|
75
67
|
# The last calling idiom (only one parameter) is generally only
|
76
68
|
# going to be useful if you subclass {AutoPointer}, and override
|
77
69
|
# #release, which by default does nothing.
|
78
|
-
def initialize(ptr, proc=nil
|
70
|
+
def initialize(ptr, proc=nil)
|
79
71
|
raise TypeError, "Invalid pointer" if ptr.nil? || !ptr.kind_of?(Pointer) ||
|
80
72
|
ptr.kind_of?(MemoryPointer) || ptr.kind_of?(AutoPointer)
|
81
73
|
super(ptr.type_size, ptr)
|
data/lib/ffi/version.rb
CHANGED
data/sig/ffi/abstract_memory.rbs
CHANGED
@@ -144,6 +144,7 @@ module FFI
|
|
144
144
|
def read_array_of_float: (Integer length) -> Array[Float]
|
145
145
|
def read_array_of_double: (Integer length) -> Array[Float]
|
146
146
|
def read_array_of_pointer: (Integer length) -> Array[Pointer]
|
147
|
+
def read_array_of_string: (?Integer? count) -> Array[String?]
|
147
148
|
|
148
149
|
def write_array_of_int8: (Array[int] ary) -> self
|
149
150
|
def write_array_of_int16: (Array[int] ary) -> self
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.17.0
|
4
|
+
version: 1.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain:
|
11
10
|
- |
|
@@ -33,7 +32,7 @@ cert_chain:
|
|
33
32
|
5wFER6XhvvLDFAMh/jMg+s7Wd5SbSHgHNSUaUGVtdWkVPOer6oF0aLdZUR3CETkn
|
34
33
|
5nWXZma/BUd3YgYA/Xumc6QQqIS4p7mr
|
35
34
|
-----END CERTIFICATE-----
|
36
|
-
date: 2024-
|
35
|
+
date: 2024-06-02 00:00:00.000000000 Z
|
37
36
|
dependencies:
|
38
37
|
- !ruby/object:Gem::Dependency
|
39
38
|
name: rake
|
@@ -749,7 +748,6 @@ metadata:
|
|
749
748
|
wiki_uri: https://github.com/ffi/ffi/wiki
|
750
749
|
source_code_uri: https://github.com/ffi/ffi/
|
751
750
|
mailing_list_uri: http://groups.google.com/group/ruby-ffi
|
752
|
-
post_install_message:
|
753
751
|
rdoc_options:
|
754
752
|
- "--exclude=ext/ffi_c/.*\\.o$"
|
755
753
|
- "--exclude=ffi_c\\.(bundle|so)$"
|
@@ -766,8 +764,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
766
764
|
- !ruby/object:Gem::Version
|
767
765
|
version: '0'
|
768
766
|
requirements: []
|
769
|
-
rubygems_version: 3.
|
770
|
-
signing_key:
|
767
|
+
rubygems_version: 3.6.0.dev
|
771
768
|
specification_version: 4
|
772
769
|
summary: Ruby FFI
|
773
770
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|