ffi 1.16.3 → 1.17.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +42 -0
  4. data/Gemfile +9 -2
  5. data/README.md +1 -1
  6. data/Rakefile +17 -5
  7. data/lib/ffi/autopointer.rb +1 -9
  8. data/lib/ffi/dynamic_library.rb +34 -5
  9. data/lib/ffi/enum.rb +0 -1
  10. data/lib/ffi/function.rb +1 -1
  11. data/lib/ffi/io.rb +2 -2
  12. data/lib/ffi/library.rb +23 -23
  13. data/lib/ffi/platform/aarch64-linux/types.conf +74 -3
  14. data/lib/ffi/pointer.rb +6 -6
  15. data/lib/ffi/struct.rb +4 -4
  16. data/lib/ffi/struct_layout.rb +2 -2
  17. data/lib/ffi/struct_layout_builder.rb +8 -8
  18. data/lib/ffi/types.rb +51 -49
  19. data/lib/ffi/version.rb +1 -1
  20. data/sig/ffi/abstract_memory.rbs +165 -0
  21. data/sig/ffi/auto_pointer.rbs +27 -0
  22. data/sig/ffi/buffer.rbs +18 -0
  23. data/sig/ffi/data_converter.rbs +10 -0
  24. data/sig/ffi/dynamic_library.rbs +9 -0
  25. data/sig/ffi/enum.rbs +38 -0
  26. data/sig/ffi/function.rbs +39 -0
  27. data/sig/ffi/library.rbs +42 -0
  28. data/sig/ffi/native_type.rbs +86 -0
  29. data/sig/ffi/pointer.rbs +42 -0
  30. data/sig/ffi/struct.rbs +76 -0
  31. data/sig/ffi/struct_by_reference.rbs +11 -0
  32. data/sig/ffi/struct_by_value.rbs +7 -0
  33. data/sig/ffi/struct_layout.rbs +9 -0
  34. data/sig/ffi/struct_layout_builder.rbs +5 -0
  35. data/sig/ffi/type.rbs +39 -0
  36. data/sig/ffi.rbs +26 -0
  37. data.tar.gz.sig +0 -0
  38. metadata +34 -532
  39. metadata.gz.sig +0 -0
  40. data/ext/ffi_c/AbstractMemory.c +0 -1128
  41. data/ext/ffi_c/AbstractMemory.h +0 -176
  42. data/ext/ffi_c/ArrayType.c +0 -198
  43. data/ext/ffi_c/ArrayType.h +0 -60
  44. data/ext/ffi_c/Buffer.c +0 -417
  45. data/ext/ffi_c/Call.c +0 -498
  46. data/ext/ffi_c/Call.h +0 -107
  47. data/ext/ffi_c/ClosurePool.c +0 -333
  48. data/ext/ffi_c/ClosurePool.h +0 -59
  49. data/ext/ffi_c/DynamicLibrary.c +0 -397
  50. data/ext/ffi_c/DynamicLibrary.h +0 -98
  51. data/ext/ffi_c/Function.c +0 -1063
  52. data/ext/ffi_c/Function.h +0 -84
  53. data/ext/ffi_c/FunctionInfo.c +0 -322
  54. data/ext/ffi_c/LastError.c +0 -243
  55. data/ext/ffi_c/LastError.h +0 -47
  56. data/ext/ffi_c/LongDouble.c +0 -65
  57. data/ext/ffi_c/LongDouble.h +0 -47
  58. data/ext/ffi_c/MappedType.c +0 -211
  59. data/ext/ffi_c/MappedType.h +0 -57
  60. data/ext/ffi_c/MemoryPointer.c +0 -219
  61. data/ext/ffi_c/MemoryPointer.h +0 -49
  62. data/ext/ffi_c/MethodHandle.c +0 -350
  63. data/ext/ffi_c/MethodHandle.h +0 -56
  64. data/ext/ffi_c/Platform.c +0 -78
  65. data/ext/ffi_c/Platform.h +0 -45
  66. data/ext/ffi_c/Pointer.c +0 -546
  67. data/ext/ffi_c/Pointer.h +0 -60
  68. data/ext/ffi_c/Struct.c +0 -897
  69. data/ext/ffi_c/Struct.h +0 -115
  70. data/ext/ffi_c/StructByValue.c +0 -177
  71. data/ext/ffi_c/StructByValue.h +0 -55
  72. data/ext/ffi_c/StructLayout.c +0 -769
  73. data/ext/ffi_c/Thread.c +0 -129
  74. data/ext/ffi_c/Thread.h +0 -76
  75. data/ext/ffi_c/Type.c +0 -447
  76. data/ext/ffi_c/Type.h +0 -63
  77. data/ext/ffi_c/Types.c +0 -138
  78. data/ext/ffi_c/Types.h +0 -88
  79. data/ext/ffi_c/Variadic.c +0 -345
  80. data/ext/ffi_c/compat.h +0 -82
  81. data/ext/ffi_c/extconf.rb +0 -115
  82. data/ext/ffi_c/ffi.c +0 -97
  83. data/ext/ffi_c/libffi/.appveyor/site.exp +0 -16
  84. data/ext/ffi_c/libffi/.appveyor/unix-noexec.exp +0 -7
  85. data/ext/ffi_c/libffi/.appveyor.yml +0 -84
  86. data/ext/ffi_c/libffi/.ci/ar-lib +0 -270
  87. data/ext/ffi_c/libffi/.ci/bfin-sim.exp +0 -58
  88. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +0 -18
  89. data/ext/ffi_c/libffi/.ci/build-in-container.sh +0 -10
  90. data/ext/ffi_c/libffi/.ci/build.sh +0 -124
  91. data/ext/ffi_c/libffi/.ci/compile +0 -351
  92. data/ext/ffi_c/libffi/.ci/install.sh +0 -78
  93. data/ext/ffi_c/libffi/.ci/m32r-sim.exp +0 -58
  94. data/ext/ffi_c/libffi/.ci/moxie-sim.exp +0 -60
  95. data/ext/ffi_c/libffi/.ci/msvs-detect +0 -1103
  96. data/ext/ffi_c/libffi/.ci/or1k-sim.exp +0 -58
  97. data/ext/ffi_c/libffi/.ci/powerpc-eabisim.exp +0 -58
  98. data/ext/ffi_c/libffi/.ci/site.exp +0 -29
  99. data/ext/ffi_c/libffi/.ci/wine-sim.exp +0 -55
  100. data/ext/ffi_c/libffi/.circleci/config.yml +0 -156
  101. data/ext/ffi_c/libffi/.gitattributes +0 -4
  102. data/ext/ffi_c/libffi/.github/issue_template.md +0 -10
  103. data/ext/ffi_c/libffi/.github/workflows/build.yml +0 -460
  104. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +0 -171
  105. data/ext/ffi_c/libffi/.gitignore +0 -46
  106. data/ext/ffi_c/libffi/ChangeLog.old +0 -7407
  107. data/ext/ffi_c/libffi/LICENSE +0 -21
  108. data/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +0 -353
  109. data/ext/ffi_c/libffi/Makefile.am +0 -157
  110. data/ext/ffi_c/libffi/Makefile.in +0 -2127
  111. data/ext/ffi_c/libffi/README.md +0 -526
  112. data/ext/ffi_c/libffi/acinclude.m4 +0 -377
  113. data/ext/ffi_c/libffi/autogen.sh +0 -2
  114. data/ext/ffi_c/libffi/compile +0 -348
  115. data/ext/ffi_c/libffi/config.guess +0 -1754
  116. data/ext/ffi_c/libffi/config.sub +0 -1892
  117. data/ext/ffi_c/libffi/configure +0 -22791
  118. data/ext/ffi_c/libffi/configure.ac +0 -451
  119. data/ext/ffi_c/libffi/configure.host +0 -337
  120. data/ext/ffi_c/libffi/doc/Makefile.am +0 -3
  121. data/ext/ffi_c/libffi/doc/Makefile.in +0 -818
  122. data/ext/ffi_c/libffi/doc/libffi.texi +0 -1046
  123. data/ext/ffi_c/libffi/doc/version.texi +0 -4
  124. data/ext/ffi_c/libffi/fficonfig.h.in +0 -188
  125. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +0 -312
  126. data/ext/ffi_c/libffi/include/Makefile.am +0 -9
  127. data/ext/ffi_c/libffi/include/Makefile.in +0 -609
  128. data/ext/ffi_c/libffi/include/ffi.h.in +0 -527
  129. data/ext/ffi_c/libffi/include/ffi_cfi.h +0 -76
  130. data/ext/ffi_c/libffi/include/ffi_common.h +0 -182
  131. data/ext/ffi_c/libffi/include/tramp.h +0 -45
  132. data/ext/ffi_c/libffi/install-sh +0 -541
  133. data/ext/ffi_c/libffi/libffi.map.in +0 -76
  134. data/ext/ffi_c/libffi/libffi.pc.in +0 -11
  135. data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +0 -997
  136. data/ext/ffi_c/libffi/libtool-ldflags +0 -106
  137. data/ext/ffi_c/libffi/libtool-version +0 -29
  138. data/ext/ffi_c/libffi/ltmain.sh +0 -11448
  139. data/ext/ffi_c/libffi/m4/asmcfi.m4 +0 -13
  140. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +0 -50
  141. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +0 -198
  142. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +0 -158
  143. data/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +0 -53
  144. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +0 -119
  145. data/ext/ffi_c/libffi/m4/ax_configure_args.m4 +0 -49
  146. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +0 -302
  147. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +0 -267
  148. data/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +0 -89
  149. data/ext/ffi_c/libffi/m4/ax_prepend_flag.m4 +0 -51
  150. data/ext/ffi_c/libffi/m4/ax_require_defined.m4 +0 -37
  151. data/ext/ffi_c/libffi/make_sunver.pl +0 -333
  152. data/ext/ffi_c/libffi/man/Makefile.am +0 -8
  153. data/ext/ffi_c/libffi/man/Makefile.in +0 -565
  154. data/ext/ffi_c/libffi/man/ffi.3 +0 -41
  155. data/ext/ffi_c/libffi/man/ffi_call.3 +0 -103
  156. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +0 -68
  157. data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +0 -73
  158. data/ext/ffi_c/libffi/missing +0 -215
  159. data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.sln +0 -33
  160. data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj +0 -130
  161. data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.filters +0 -57
  162. data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.user +0 -4
  163. data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +0 -511
  164. data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/fficonfig.h +0 -219
  165. data/ext/ffi_c/libffi/msvcc.sh +0 -353
  166. data/ext/ffi_c/libffi/src/aarch64/ffi.c +0 -1129
  167. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +0 -97
  168. data/ext/ffi_c/libffi/src/aarch64/internal.h +0 -100
  169. data/ext/ffi_c/libffi/src/aarch64/sysv.S +0 -543
  170. data/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +0 -506
  171. data/ext/ffi_c/libffi/src/alpha/ffi.c +0 -521
  172. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +0 -57
  173. data/ext/ffi_c/libffi/src/alpha/internal.h +0 -23
  174. data/ext/ffi_c/libffi/src/alpha/osf.S +0 -282
  175. data/ext/ffi_c/libffi/src/arc/arcompact.S +0 -210
  176. data/ext/ffi_c/libffi/src/arc/ffi.c +0 -443
  177. data/ext/ffi_c/libffi/src/arc/ffitarget.h +0 -67
  178. data/ext/ffi_c/libffi/src/arm/ffi.c +0 -921
  179. data/ext/ffi_c/libffi/src/arm/ffitarget.h +0 -89
  180. data/ext/ffi_c/libffi/src/arm/internal.h +0 -17
  181. data/ext/ffi_c/libffi/src/arm/sysv.S +0 -456
  182. data/ext/ffi_c/libffi/src/arm/sysv_msvc_arm32.S +0 -311
  183. data/ext/ffi_c/libffi/src/avr32/ffi.c +0 -423
  184. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +0 -55
  185. data/ext/ffi_c/libffi/src/avr32/sysv.S +0 -208
  186. data/ext/ffi_c/libffi/src/bfin/ffi.c +0 -196
  187. data/ext/ffi_c/libffi/src/bfin/ffitarget.h +0 -43
  188. data/ext/ffi_c/libffi/src/bfin/sysv.S +0 -179
  189. data/ext/ffi_c/libffi/src/closures.c +0 -1107
  190. data/ext/ffi_c/libffi/src/cris/ffi.c +0 -386
  191. data/ext/ffi_c/libffi/src/cris/ffitarget.h +0 -56
  192. data/ext/ffi_c/libffi/src/cris/sysv.S +0 -215
  193. data/ext/ffi_c/libffi/src/csky/ffi.c +0 -395
  194. data/ext/ffi_c/libffi/src/csky/ffitarget.h +0 -63
  195. data/ext/ffi_c/libffi/src/csky/sysv.S +0 -371
  196. data/ext/ffi_c/libffi/src/debug.c +0 -64
  197. data/ext/ffi_c/libffi/src/dlmalloc.c +0 -5171
  198. data/ext/ffi_c/libffi/src/frv/eabi.S +0 -128
  199. data/ext/ffi_c/libffi/src/frv/ffi.c +0 -292
  200. data/ext/ffi_c/libffi/src/frv/ffitarget.h +0 -62
  201. data/ext/ffi_c/libffi/src/ia64/ffi.c +0 -616
  202. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +0 -56
  203. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +0 -40
  204. data/ext/ffi_c/libffi/src/ia64/unix.S +0 -585
  205. data/ext/ffi_c/libffi/src/java_raw_api.c +0 -374
  206. data/ext/ffi_c/libffi/src/kvx/asm.h +0 -5
  207. data/ext/ffi_c/libffi/src/kvx/ffi.c +0 -273
  208. data/ext/ffi_c/libffi/src/kvx/ffitarget.h +0 -75
  209. data/ext/ffi_c/libffi/src/kvx/sysv.S +0 -127
  210. data/ext/ffi_c/libffi/src/loongarch64/ffi.c +0 -621
  211. data/ext/ffi_c/libffi/src/loongarch64/ffitarget.h +0 -82
  212. data/ext/ffi_c/libffi/src/loongarch64/sysv.S +0 -327
  213. data/ext/ffi_c/libffi/src/m32r/ffi.c +0 -249
  214. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +0 -53
  215. data/ext/ffi_c/libffi/src/m32r/sysv.S +0 -121
  216. data/ext/ffi_c/libffi/src/m68k/ffi.c +0 -362
  217. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +0 -54
  218. data/ext/ffi_c/libffi/src/m68k/sysv.S +0 -357
  219. data/ext/ffi_c/libffi/src/m88k/ffi.c +0 -400
  220. data/ext/ffi_c/libffi/src/m88k/ffitarget.h +0 -49
  221. data/ext/ffi_c/libffi/src/m88k/obsd.S +0 -209
  222. data/ext/ffi_c/libffi/src/metag/ffi.c +0 -330
  223. data/ext/ffi_c/libffi/src/metag/ffitarget.h +0 -53
  224. data/ext/ffi_c/libffi/src/metag/sysv.S +0 -311
  225. data/ext/ffi_c/libffi/src/microblaze/ffi.c +0 -321
  226. data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +0 -53
  227. data/ext/ffi_c/libffi/src/microblaze/sysv.S +0 -302
  228. data/ext/ffi_c/libffi/src/mips/ffi.c +0 -1309
  229. data/ext/ffi_c/libffi/src/mips/ffitarget.h +0 -251
  230. data/ext/ffi_c/libffi/src/mips/n32.S +0 -772
  231. data/ext/ffi_c/libffi/src/mips/o32.S +0 -561
  232. data/ext/ffi_c/libffi/src/moxie/eabi.S +0 -101
  233. data/ext/ffi_c/libffi/src/moxie/ffi.c +0 -310
  234. data/ext/ffi_c/libffi/src/moxie/ffitarget.h +0 -52
  235. data/ext/ffi_c/libffi/src/nios2/ffi.c +0 -304
  236. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +0 -52
  237. data/ext/ffi_c/libffi/src/nios2/sysv.S +0 -136
  238. data/ext/ffi_c/libffi/src/or1k/ffi.c +0 -341
  239. data/ext/ffi_c/libffi/src/or1k/ffitarget.h +0 -58
  240. data/ext/ffi_c/libffi/src/or1k/sysv.S +0 -107
  241. data/ext/ffi_c/libffi/src/pa/ffi.c +0 -673
  242. data/ext/ffi_c/libffi/src/pa/ffi64.c +0 -614
  243. data/ext/ffi_c/libffi/src/pa/ffitarget.h +0 -94
  244. data/ext/ffi_c/libffi/src/pa/hpux32.S +0 -417
  245. data/ext/ffi_c/libffi/src/pa/hpux64.S +0 -681
  246. data/ext/ffi_c/libffi/src/pa/linux.S +0 -427
  247. data/ext/ffi_c/libffi/src/powerpc/aix.S +0 -566
  248. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +0 -694
  249. data/ext/ffi_c/libffi/src/powerpc/asm.h +0 -125
  250. data/ext/ffi_c/libffi/src/powerpc/darwin.S +0 -378
  251. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +0 -571
  252. data/ext/ffi_c/libffi/src/powerpc/ffi.c +0 -175
  253. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +0 -1452
  254. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +0 -1153
  255. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +0 -105
  256. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +0 -923
  257. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +0 -204
  258. data/ext/ffi_c/libffi/src/powerpc/linux64.S +0 -293
  259. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +0 -566
  260. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +0 -397
  261. data/ext/ffi_c/libffi/src/powerpc/sysv.S +0 -173
  262. data/ext/ffi_c/libffi/src/powerpc/t-aix +0 -5
  263. data/ext/ffi_c/libffi/src/prep_cif.c +0 -283
  264. data/ext/ffi_c/libffi/src/raw_api.c +0 -267
  265. data/ext/ffi_c/libffi/src/riscv/ffi.c +0 -514
  266. data/ext/ffi_c/libffi/src/riscv/ffitarget.h +0 -69
  267. data/ext/ffi_c/libffi/src/riscv/sysv.S +0 -293
  268. data/ext/ffi_c/libffi/src/s390/ffi.c +0 -756
  269. data/ext/ffi_c/libffi/src/s390/ffitarget.h +0 -70
  270. data/ext/ffi_c/libffi/src/s390/internal.h +0 -11
  271. data/ext/ffi_c/libffi/src/s390/sysv.S +0 -325
  272. data/ext/ffi_c/libffi/src/sh/ffi.c +0 -717
  273. data/ext/ffi_c/libffi/src/sh/ffitarget.h +0 -54
  274. data/ext/ffi_c/libffi/src/sh/sysv.S +0 -850
  275. data/ext/ffi_c/libffi/src/sh64/ffi.c +0 -469
  276. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +0 -58
  277. data/ext/ffi_c/libffi/src/sh64/sysv.S +0 -539
  278. data/ext/ffi_c/libffi/src/sparc/ffi.c +0 -468
  279. data/ext/ffi_c/libffi/src/sparc/ffi64.c +0 -624
  280. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +0 -81
  281. data/ext/ffi_c/libffi/src/sparc/internal.h +0 -26
  282. data/ext/ffi_c/libffi/src/sparc/v8.S +0 -443
  283. data/ext/ffi_c/libffi/src/sparc/v9.S +0 -440
  284. data/ext/ffi_c/libffi/src/tile/ffi.c +0 -355
  285. data/ext/ffi_c/libffi/src/tile/ffitarget.h +0 -65
  286. data/ext/ffi_c/libffi/src/tile/tile.S +0 -360
  287. data/ext/ffi_c/libffi/src/tramp.c +0 -716
  288. data/ext/ffi_c/libffi/src/types.c +0 -108
  289. data/ext/ffi_c/libffi/src/vax/elfbsd.S +0 -195
  290. data/ext/ffi_c/libffi/src/vax/ffi.c +0 -276
  291. data/ext/ffi_c/libffi/src/vax/ffitarget.h +0 -49
  292. data/ext/ffi_c/libffi/src/wasm32/ffi.c +0 -934
  293. data/ext/ffi_c/libffi/src/wasm32/ffitarget.h +0 -62
  294. data/ext/ffi_c/libffi/src/x86/asmnames.h +0 -30
  295. data/ext/ffi_c/libffi/src/x86/ffi.c +0 -832
  296. data/ext/ffi_c/libffi/src/x86/ffi64.c +0 -950
  297. data/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -164
  298. data/ext/ffi_c/libffi/src/x86/ffiw64.c +0 -361
  299. data/ext/ffi_c/libffi/src/x86/internal.h +0 -43
  300. data/ext/ffi_c/libffi/src/x86/internal64.h +0 -36
  301. data/ext/ffi_c/libffi/src/x86/sysv.S +0 -1272
  302. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +0 -998
  303. data/ext/ffi_c/libffi/src/x86/unix64.S +0 -711
  304. data/ext/ffi_c/libffi/src/x86/win64.S +0 -254
  305. data/ext/ffi_c/libffi/src/x86/win64_intel.S +0 -238
  306. data/ext/ffi_c/libffi/src/xtensa/ffi.c +0 -306
  307. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +0 -57
  308. data/ext/ffi_c/libffi/src/xtensa/sysv.S +0 -268
  309. data/ext/ffi_c/libffi/stamp-h.in +0 -1
  310. data/ext/ffi_c/libffi/testsuite/Makefile.am +0 -135
  311. data/ext/ffi_c/libffi/testsuite/Makefile.in +0 -664
  312. data/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
  313. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +0 -54
  314. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +0 -63
  315. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +0 -80
  316. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +0 -48
  317. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +0 -7
  318. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +0 -51
  319. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -682
  320. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
  321. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
  322. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
  323. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
  324. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
  325. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -63
  326. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1746
  327. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  328. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -747
  329. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
  330. data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
  331. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +0 -41
  332. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -54
  333. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
  334. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -163
  335. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
  336. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
  337. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -61
  338. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
  339. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
  340. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -110
  341. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
  342. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
  343. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
  344. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
  345. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
  346. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
  347. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
  348. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
  349. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc_tc.c +0 -114
  350. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
  351. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
  352. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
  353. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
  354. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
  355. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
  356. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
  357. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
  358. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
  359. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -48
  360. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
  361. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -42
  362. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
  363. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -42
  364. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +0 -60
  365. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -43
  366. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
  367. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
  368. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
  369. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
  370. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
  371. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
  372. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
  373. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
  374. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
  375. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
  376. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
  377. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
  378. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
  379. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +0 -63
  380. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +0 -65
  381. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +0 -65
  382. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +0 -67
  383. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +0 -67
  384. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +0 -93
  385. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +0 -61
  386. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +0 -63
  387. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +0 -90
  388. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
  389. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -78
  390. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +0 -220
  391. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +0 -154
  392. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -134
  393. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -134
  394. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -140
  395. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -67
  396. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -90
  397. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -83
  398. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -83
  399. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -102
  400. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -91
  401. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -94
  402. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -92
  403. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -96
  404. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -61
  405. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -112
  406. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -117
  407. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -120
  408. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -131
  409. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -93
  410. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -109
  411. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -113
  412. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -145
  413. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -103
  414. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -114
  415. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -103
  416. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -103
  417. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -113
  418. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -120
  419. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -103
  420. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -137
  421. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -116
  422. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -148
  423. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -140
  424. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -121
  425. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -155
  426. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -121
  427. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -102
  428. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -103
  429. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -103
  430. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -111
  431. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -109
  432. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -111
  433. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -147
  434. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -152
  435. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -113
  436. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -108
  437. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -106
  438. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -109
  439. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -108
  440. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -109
  441. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -111
  442. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -68
  443. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -43
  444. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -69
  445. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -46
  446. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -115
  447. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -80
  448. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -70
  449. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -55
  450. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -78
  451. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -79
  452. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -94
  453. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -99
  454. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -78
  455. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -94
  456. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -79
  457. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -152
  458. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -47
  459. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -44
  460. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -45
  461. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -125
  462. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -45
  463. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -47
  464. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -49
  465. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -49
  466. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -49
  467. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -46
  468. data/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -36
  469. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -1
  470. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -343
  471. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -175
  472. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -161
  473. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -146
  474. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -137
  475. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +0 -86
  476. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +0 -115
  477. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -119
  478. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -120
  479. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -120
  480. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -121
  481. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -142
  482. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -120
  483. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -142
  484. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -142
  485. data/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -90
  486. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +0 -86
  487. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +0 -102
  488. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +0 -101
  489. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -145
  490. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -148
  491. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -124
  492. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -125
  493. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -75
  494. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -118
  495. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -55
  496. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
  497. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
  498. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
  499. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
  500. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
  501. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
  502. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
  503. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
  504. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
  505. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
  506. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
  507. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
  508. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
  509. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
  510. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
  511. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
  512. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
  513. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
  514. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
  515. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
  516. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
  517. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
  518. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
  519. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
  520. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
  521. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
  522. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
  523. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
  524. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
  525. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
  526. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
  527. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
  528. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
  529. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
  530. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
  531. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
  532. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
  533. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
  534. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
  535. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
  536. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
  537. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
  538. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
  539. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
  540. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
  541. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
  542. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
  543. data/ext/ffi_c/libffi.bsd.mk +0 -40
  544. data/ext/ffi_c/libffi.darwin.mk +0 -105
  545. data/ext/ffi_c/libffi.gnu.mk +0 -32
  546. data/ext/ffi_c/libffi.mk +0 -18
  547. data/ext/ffi_c/libffi.vc.mk +0 -26
  548. data/ext/ffi_c/libffi.vc64.mk +0 -26
  549. data/ext/ffi_c/rbffi.h +0 -55
  550. data/ext/ffi_c/rbffi_endian.h +0 -59
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5920bab18c2bfca946febdf9d31aae894569dd1a293d816631a077696f7db8fa
4
- data.tar.gz: 7aa17dd90399d15bd149573ab4b9857907028beae4f84409f76f50e9508aaba2
3
+ metadata.gz: 339482a2db268d08ac79e7205fb1dd77b83f06c6a69f698cd35eed5e4063e899
4
+ data.tar.gz: 022aa0d53823dc33bf77698efac9f057c9ad5987819fd1c2ad3b2f90ad3f7be6
5
5
  SHA512:
6
- metadata.gz: dd42730736988cac47f45485f4a8b200c26759066fe156a89ef7736cd6ac80f404e8aaced28a8f10f9b22b43436ed3e248cb191f1c457ccabc19299b91b49174
7
- data.tar.gz: '0252969e7a324d530c1d704e2d408f1bd7283f320de90b4c98f20bb49f9d32733ac45609d78a40f821cd5335e102e80576fd446cd5de863babea041d0eb3c780'
6
+ metadata.gz: 68f15f9afd458da3fb4aa52debe5418a6732184f27d40ca3c85ada225f0192b7b6a7db3b631896d57933c8d9ac2d272254798a9c72db1c958076d444a36cb726
7
+ data.tar.gz: 7a9181876be8f2c46317f0c00f801fe1748d8e4716df99adf9d8d864146c6d49d6b40ae6b64bb2a33709956df6128d4254eaadaeff61547416f11e6a83b4c34c
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,45 @@
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
16
+ -------------------
17
+
18
+ Fixed:
19
+ * Fix type definitions on `aarch64-linux`. #1067, #1066
20
+ * Use RB_TEST for `Pointer.autorelease=` . #1065
21
+ So that `false` and `nil` are treated as falsey and anything else as truthy.
22
+ * Replace Fixnum by Integer. #1064
23
+ Fixnum is no longer present in the ruby language.
24
+ * Update `FFI::NativeType` doc. #1061
25
+ * Store FFI::Type::Mapped of FFI::StrPtrConverter in global instead of custom type map
26
+ * Various documentation fixes. #1042
27
+ * Update `FFI::Pointer#==` to return `false` if a pointer is compared to a non-pointer object, which is the expected behavior. #1083
28
+ * Avoid warning about undefined wariable `@ffi_functions` #1085
29
+ * Fix a very unlikely GC bug when using a callback block. # 1089
30
+
31
+ Added:
32
+ * Provide binary gems for many platforms. #990
33
+ * Add Windows fat binary gem for Ruby-3.3
34
+ * Add RBS type definitions for many user facing parts of the FFI API. #1042
35
+ * Improve fallback search path logic. #1088
36
+ Respect LD_LIBRARY_PATH and DYLD_LIBRARY_PATH on Macos.
37
+ * Update libffi to current git master branch.
38
+
39
+ Removed:
40
+ * Remove `enum CHAR_ARRAY` which is no longer used. #1063
41
+
42
+
1
43
  1.16.3 / 2023-10-04
2
44
  -------------------
3
45
 
data/Gemfile CHANGED
@@ -1,14 +1,21 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  group :development do
4
+ gem 'bigdecimal' # necessary on ruby-3.3+
5
+ gem 'bundler', '>= 1.16', '< 3'
4
6
  gem 'rake', '~> 13.0'
5
7
  gem 'rake-compiler', '~> 1.1'
6
- gem 'rake-compiler-dock', '~> 1.0'
8
+ gem 'rake-compiler-dock', '~> 1.0.pre'
7
9
  gem 'rspec', '~> 3.0'
8
- gem 'bundler', '>= 1.16', '< 3'
9
10
  end
10
11
 
11
12
  group :doc do
12
13
  gem 'kramdown'
13
14
  gem 'yard', '~> 0.9'
14
15
  end
16
+
17
+ group :type_check do
18
+ if RUBY_VERSION >= "2.6" && %w[ ruby truffleruby ].include?(RUBY_ENGINE)
19
+ gem 'rbs', '~> 3.0'
20
+ end
21
+ end
data/README.md CHANGED
@@ -114,7 +114,7 @@ The following people have submitted code, bug reports, or otherwise contributed
114
114
  * Jurij Smakov <jurij@wooyd.org>
115
115
  * KISHIMOTO, Makoto <ksmakoto@dd.iij4u.or.jp>
116
116
  * Kim Burgestrand <kim@burgestrand.se>
117
- * Lars Kanis <kanis@comcard.de>
117
+ * Lars Kanis <lars@greiz-reinsdorf.de>
118
118
  * Luc Heinrich <luc@honk-honk.com>
119
119
  * Luis Lavena <luislavena@gmail.com>
120
120
  * Matijs van Zuijlen <matijs@matijs.net>
data/Rakefile CHANGED
@@ -13,7 +13,7 @@ BUILD_EXT_DIR = File.join(BUILD_DIR, "#{RbConfig::CONFIG['arch']}", 'ffi_c', RUB
13
13
 
14
14
  gem_spec = Bundler.load_gemspec('ffi.gemspec')
15
15
 
16
- RSpec::Core::RakeTask.new(:spec => :compile) do |config|
16
+ RSpec::Core::RakeTask.new(:spec) do |config|
17
17
  config.rspec_opts = YAML.load_file 'spec/spec.opts'
18
18
  end
19
19
 
@@ -84,10 +84,22 @@ end
84
84
  task 'gem:java' => 'java:gem'
85
85
 
86
86
  FfiGemHelper.install_tasks
87
- # Register windows gems to be pushed to rubygems.org
88
- Bundler::GemHelper.instance.cross_platforms = %w[x86-mingw32 x64-mingw-ucrt x64-mingw32]
89
- # These platforms are not yet enabled, since there are issues on musl-based distors (alpine-linux):
90
- # + %w[x86-linux x86_64-linux arm-linux aarch64-linux x86_64-darwin arm64-darwin]
87
+ # Register binary gems to be pushed to rubygems.org
88
+ Bundler::GemHelper.instance.cross_platforms = %w[
89
+ x86-mingw32
90
+ x64-mingw-ucrt
91
+ x64-mingw32
92
+ x86-linux-gnu
93
+ x86-linux-musl
94
+ x86_64-linux-gnu
95
+ x86_64-linux-musl
96
+ arm-linux-gnu
97
+ arm-linux-musl
98
+ aarch64-linux-gnu
99
+ aarch64-linux-musl
100
+ x86_64-darwin
101
+ arm64-darwin
102
+ ]
91
103
 
92
104
  if RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
93
105
  require 'rake/extensiontask'
@@ -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, &block)
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)
@@ -30,12 +30,41 @@
30
30
 
31
31
  module FFI
32
32
  class DynamicLibrary
33
- SEARCH_PATH = %w[/usr/lib /usr/local/lib /opt/local/lib]
34
- if FFI::Platform::ARCH == 'aarch64' && FFI::Platform.mac?
35
- SEARCH_PATH << '/opt/homebrew/lib'
33
+ SEARCH_PATH = []
34
+
35
+ # The following search paths are tried, if the library could not be loaded in the first attempt.
36
+ # They are only executed on Macos in the following order:
37
+ if FFI::Platform.mac?
38
+
39
+ # 1. Try library paths possibly defined in LD_LIBRARY_PATH DYLD_LIBRARY_PATH first.
40
+ # This is because dlopen doesn't respect LD_LIBRARY_PATH and DYLD_LIBRARY_PATH is deleted by SIP-protected binaries.
41
+ # See here for details: https://github.com/ffi/ffi/issues/923#issuecomment-1872565313
42
+ %w[LD_LIBRARY_PATH DYLD_LIBRARY_PATH].each do |custom_path|
43
+ SEARCH_PATH.concat ENV.fetch(custom_path,"").split(File::PATH_SEPARATOR)
44
+ end
45
+
46
+ # 2. Then on macos/arm64 try /opt/homebrew/lib, since this is a typical standard directory.
47
+ # FFI is often used together with homebrew, so that we hardcode the path for arm64 here.
48
+ if FFI::Platform::ARCH == 'aarch64'
49
+ SEARCH_PATH << '/opt/homebrew/lib'
50
+ end
51
+
52
+ # 3. Then try typical system directories starting with the /local/ directory first.
53
+ #
54
+ # /usr/local/lib is used by homebrow on x86_64.
55
+ # /opt/local/lib is used by MacPorts and Fink.
56
+ # /usr/lib is there, because it was always there.
57
+ SEARCH_PATH.concat %w[/opt/local/lib /usr/local/lib /usr/lib]
36
58
  end
37
59
 
38
- SEARCH_PATH_MESSAGE = "Searched in <system library path>, #{SEARCH_PATH.join(', ')}".freeze
60
+ # On Linux the library lookup paths are usually defined through /etc/ld.so.conf, which can be changed at will with root permissions.
61
+ # Also LD_LIBRARY_PATH is respected by the dynamic loader, so that there's usually no need and no advantage to do a fallback handling.
62
+ #
63
+ # Windows has it's own library lookup logic, very different to what we do here.
64
+ # See: https://github.com/oneclick/rubyinstaller2/wiki/For-gem-developers#user-content-dll-loading
65
+
66
+ FFI.make_shareable(SEARCH_PATH)
67
+ SEARCH_PATH_MESSAGE = "Searched in <system library path>#{ SEARCH_PATH.map{|a| ', ' + a}.join }".freeze
39
68
 
40
69
  def self.load_library(name, flags)
41
70
  if name == FFI::CURRENT_PROCESS
@@ -51,7 +80,7 @@ module FFI
51
80
  lib = try_load(libname, flags, errors)
52
81
  return lib if lib
53
82
 
54
- unless libname.start_with?("/") || FFI::Platform.windows?
83
+ unless libname.start_with?("/")
55
84
  SEARCH_PATH.each do |prefix|
56
85
  path = "#{prefix}/#{libname}"
57
86
  if File.exist?(path)
data/lib/ffi/enum.rb CHANGED
@@ -35,7 +35,6 @@ module FFI
35
35
  # An instance of this class permits to manage {Enum}s. In fact, Enums is a collection of {Enum}s.
36
36
  class Enums
37
37
 
38
- # @return [nil]
39
38
  def initialize
40
39
  @all_enums = Array.new
41
40
  @tagged_enums = Hash.new
data/lib/ffi/function.rb CHANGED
@@ -55,7 +55,7 @@ module FFI
55
55
  # On CRuby it also ensures that it does not get garbage collected.
56
56
  module RegisterAttach
57
57
  def attach(mod, name)
58
- funcs = mod.instance_variable_get("@ffi_functions")
58
+ funcs = mod.instance_variable_defined?("@ffi_functions") && mod.instance_variable_get("@ffi_functions")
59
59
  unless funcs
60
60
  funcs = {}
61
61
  mod.instance_variable_set("@ffi_functions", funcs)
data/lib/ffi/io.rb CHANGED
@@ -42,9 +42,9 @@ module FFI
42
42
 
43
43
  # @param [#read] io io to read from
44
44
  # @param [AbstractMemory] buf destination for data read from +io+
45
- # @param [nil, Numeric] len maximul number of bytes to read from +io+. If +nil+,
45
+ # @param [nil, Integer] len maximul number of bytes to read from +io+. If +nil+,
46
46
  # read until end of file.
47
- # @return [Numeric] length really read, in bytes
47
+ # @return [Integer] length really read, in bytes
48
48
  #
49
49
  # A version of IO#read that reads data from an IO and put then into a native buffer.
50
50
  #
data/lib/ffi/library.rb CHANGED
@@ -135,7 +135,7 @@ module FFI
135
135
  # ffi_lib_flags(:lazy, :local) # => 5
136
136
  #
137
137
  # @param [Symbol, …] flags (see {FlagsMap})
138
- # @return [Fixnum] the new value
138
+ # @return [Integer] the new value
139
139
  def ffi_lib_flags(*flags)
140
140
  @ffi_lib_flags = flags.inject(0) { |result, f| result | FlagsMap[f] }
141
141
  end
@@ -395,6 +395,26 @@ module FFI
395
395
  end
396
396
  end
397
397
 
398
+ # @param [DataConverter, Type, Struct, Symbol] t type to find
399
+ # @return [Type]
400
+ # Find a type definition.
401
+ def find_type(t)
402
+ if t.kind_of?(Type)
403
+ t
404
+
405
+ elsif defined?(@ffi_typedefs) && @ffi_typedefs.has_key?(t)
406
+ @ffi_typedefs[t]
407
+
408
+ elsif t.is_a?(Class) && t < Struct
409
+ Type::POINTER
410
+
411
+ elsif t.is_a?(DataConverter)
412
+ # Add a typedef so next time the converter is used, it hits the cache
413
+ typedef Type::Mapped.new(t), t
414
+
415
+ end || FFI.find_type(t)
416
+ end
417
+
398
418
  private
399
419
  # Generic enum builder
400
420
  # @param [Class] klass can be one of FFI::Enum or FFI::Bitmask
@@ -515,26 +535,6 @@ module FFI
515
535
  @ffi_enums.__map_symbol(symbol)
516
536
  end
517
537
 
518
- # @param [DataConverter, Type, Struct, Symbol] t type to find
519
- # @return [Type]
520
- # Find a type definition.
521
- def find_type(t)
522
- if t.kind_of?(Type)
523
- t
524
-
525
- elsif defined?(@ffi_typedefs) && @ffi_typedefs.has_key?(t)
526
- @ffi_typedefs[t]
527
-
528
- elsif t.is_a?(Class) && t < Struct
529
- Type::POINTER
530
-
531
- elsif t.is_a?(DataConverter)
532
- # Add a typedef so next time the converter is used, it hits the cache
533
- typedef Type::Mapped.new(t), t
534
-
535
- end || FFI.find_type(t)
536
- end
537
-
538
538
  # Retrieve all attached functions and their function signature
539
539
  #
540
540
  # This method returns a Hash of method names of attached functions connected by #attach_function and the corresponding function type.
@@ -552,10 +552,10 @@ module FFI
552
552
  # @return [Hash< Symbol => ffi_type >]
553
553
  def attached_variables
554
554
  (
555
- (@ffi_gsvars || {}).map do |name, gvar|
555
+ (defined?(@ffi_gsvars) ? @ffi_gsvars : {}).map do |name, gvar|
556
556
  [name, gvar.class]
557
557
  end +
558
- (@ffi_gvars || {}).map do |name, gvar|
558
+ (defined?(@ffi_gvars) ? @ffi_gvars : {}).map do |name, gvar|
559
559
  [name, gvar.layout[:gvar].type]
560
560
  end
561
561
  ).to_h
@@ -1,5 +1,4 @@
1
1
  rbx.platform.typedef.*__caddr_t = char
2
- rbx.platform.typedef.*__qaddr_t = long
3
2
  rbx.platform.typedef.__blkcnt64_t = long
4
3
  rbx.platform.typedef.__blkcnt_t = long
5
4
  rbx.platform.typedef.__blksize_t = int
@@ -21,7 +20,43 @@ rbx.platform.typedef.__int16_t = short
21
20
  rbx.platform.typedef.__int32_t = int
22
21
  rbx.platform.typedef.__int64_t = long
23
22
  rbx.platform.typedef.__int8_t = char
23
+ rbx.platform.typedef.__int_least16_t = short
24
+ rbx.platform.typedef.__int_least32_t = int
25
+ rbx.platform.typedef.__int_least64_t = long
26
+ rbx.platform.typedef.__int_least8_t = char
27
+ rbx.platform.typedef.__intmax_t = long
24
28
  rbx.platform.typedef.__intptr_t = long
29
+ rbx.platform.typedef.__kernel_caddr_t = string
30
+ rbx.platform.typedef.__kernel_clock_t = long
31
+ rbx.platform.typedef.__kernel_clockid_t = int
32
+ rbx.platform.typedef.__kernel_daddr_t = int
33
+ rbx.platform.typedef.__kernel_gid16_t = ushort
34
+ rbx.platform.typedef.__kernel_gid32_t = uint
35
+ rbx.platform.typedef.__kernel_gid_t = uint
36
+ rbx.platform.typedef.__kernel_ino_t = ulong
37
+ rbx.platform.typedef.__kernel_ipc_pid_t = int
38
+ rbx.platform.typedef.__kernel_key_t = int
39
+ rbx.platform.typedef.__kernel_loff_t = long_long
40
+ rbx.platform.typedef.__kernel_long_t = long
41
+ rbx.platform.typedef.__kernel_mode_t = uint
42
+ rbx.platform.typedef.__kernel_mqd_t = int
43
+ rbx.platform.typedef.__kernel_off_t = long
44
+ rbx.platform.typedef.__kernel_old_dev_t = uint
45
+ rbx.platform.typedef.__kernel_old_gid_t = ushort
46
+ rbx.platform.typedef.__kernel_old_time_t = long
47
+ rbx.platform.typedef.__kernel_old_uid_t = ushort
48
+ rbx.platform.typedef.__kernel_pid_t = int
49
+ rbx.platform.typedef.__kernel_ptrdiff_t = long
50
+ rbx.platform.typedef.__kernel_size_t = ulong
51
+ rbx.platform.typedef.__kernel_ssize_t = long
52
+ rbx.platform.typedef.__kernel_suseconds_t = long
53
+ rbx.platform.typedef.__kernel_time64_t = long_long
54
+ rbx.platform.typedef.__kernel_time_t = long
55
+ rbx.platform.typedef.__kernel_timer_t = int
56
+ rbx.platform.typedef.__kernel_uid16_t = ushort
57
+ rbx.platform.typedef.__kernel_uid32_t = uint
58
+ rbx.platform.typedef.__kernel_uid_t = uint
59
+ rbx.platform.typedef.__kernel_ulong_t = ulong
25
60
  rbx.platform.typedef.__key_t = int
26
61
  rbx.platform.typedef.__loff_t = long
27
62
  rbx.platform.typedef.__mode_t = uint
@@ -38,11 +73,14 @@ rbx.platform.typedef.__rusage_who_t = int
38
73
  rbx.platform.typedef.__sig_atomic_t = int
39
74
  rbx.platform.typedef.__socklen_t = uint
40
75
  rbx.platform.typedef.__ssize_t = long
76
+ rbx.platform.typedef.__suseconds64_t = long
41
77
  rbx.platform.typedef.__suseconds_t = long
42
78
  rbx.platform.typedef.__syscall_slong_t = long
43
79
  rbx.platform.typedef.__syscall_ulong_t = ulong
80
+ rbx.platform.typedef.__thrd_t = ulong
44
81
  rbx.platform.typedef.__time_t = long
45
82
  rbx.platform.typedef.__timer_t = pointer
83
+ rbx.platform.typedef.__tss_t = uint
46
84
  rbx.platform.typedef.__u_char = uchar
47
85
  rbx.platform.typedef.__u_int = uint
48
86
  rbx.platform.typedef.__u_long = ulong
@@ -53,6 +91,11 @@ rbx.platform.typedef.__uint16_t = ushort
53
91
  rbx.platform.typedef.__uint32_t = uint
54
92
  rbx.platform.typedef.__uint64_t = ulong
55
93
  rbx.platform.typedef.__uint8_t = uchar
94
+ rbx.platform.typedef.__uint_least16_t = ushort
95
+ rbx.platform.typedef.__uint_least32_t = uint
96
+ rbx.platform.typedef.__uint_least64_t = ulong
97
+ rbx.platform.typedef.__uint_least8_t = uchar
98
+ rbx.platform.typedef.__uintmax_t = ulong
56
99
  rbx.platform.typedef.__useconds_t = uint
57
100
  rbx.platform.typedef.blkcnt_t = long
58
101
  rbx.platform.typedef.blksize_t = int
@@ -65,11 +108,23 @@ rbx.platform.typedef.fsblkcnt_t = ulong
65
108
  rbx.platform.typedef.fsfilcnt_t = ulong
66
109
  rbx.platform.typedef.gid_t = uint
67
110
  rbx.platform.typedef.id_t = uint
111
+ rbx.platform.typedef.in_addr_t = uint
112
+ rbx.platform.typedef.in_port_t = ushort
68
113
  rbx.platform.typedef.ino_t = ulong
69
114
  rbx.platform.typedef.int16_t = short
70
115
  rbx.platform.typedef.int32_t = int
71
- rbx.platform.typedef.int64_t = long_long
116
+ rbx.platform.typedef.int64_t = long
72
117
  rbx.platform.typedef.int8_t = char
118
+ rbx.platform.typedef.int_fast16_t = long
119
+ rbx.platform.typedef.int_fast32_t = long
120
+ rbx.platform.typedef.int_fast64_t = long
121
+ rbx.platform.typedef.int_fast8_t = char
122
+ rbx.platform.typedef.int_least16_t = short
123
+ rbx.platform.typedef.int_least32_t = int
124
+ rbx.platform.typedef.int_least64_t = long
125
+ rbx.platform.typedef.int_least8_t = char
126
+ rbx.platform.typedef.intmax_t = long
127
+ rbx.platform.typedef.intptr_t = long
73
128
  rbx.platform.typedef.key_t = int
74
129
  rbx.platform.typedef.loff_t = long
75
130
  rbx.platform.typedef.mode_t = uint
@@ -79,6 +134,7 @@ rbx.platform.typedef.pid_t = int
79
134
  rbx.platform.typedef.pthread_key_t = uint
80
135
  rbx.platform.typedef.pthread_once_t = int
81
136
  rbx.platform.typedef.pthread_t = ulong
137
+ rbx.platform.typedef.ptrdiff_t = long
82
138
  rbx.platform.typedef.quad_t = long
83
139
  rbx.platform.typedef.register_t = long
84
140
  rbx.platform.typedef.rlim_t = ulong
@@ -93,12 +149,27 @@ rbx.platform.typedef.u_char = uchar
93
149
  rbx.platform.typedef.u_int = uint
94
150
  rbx.platform.typedef.u_int16_t = ushort
95
151
  rbx.platform.typedef.u_int32_t = uint
96
- rbx.platform.typedef.u_int64_t = ulong_long
152
+ rbx.platform.typedef.u_int64_t = ulong
97
153
  rbx.platform.typedef.u_int8_t = uchar
98
154
  rbx.platform.typedef.u_long = ulong
99
155
  rbx.platform.typedef.u_quad_t = ulong
100
156
  rbx.platform.typedef.u_short = ushort
101
157
  rbx.platform.typedef.uid_t = uint
102
158
  rbx.platform.typedef.uint = uint
159
+ rbx.platform.typedef.uint16_t = ushort
160
+ rbx.platform.typedef.uint32_t = uint
161
+ rbx.platform.typedef.uint64_t = ulong
162
+ rbx.platform.typedef.uint8_t = uchar
163
+ rbx.platform.typedef.uint_fast16_t = ulong
164
+ rbx.platform.typedef.uint_fast32_t = ulong
165
+ rbx.platform.typedef.uint_fast64_t = ulong
166
+ rbx.platform.typedef.uint_fast8_t = uchar
167
+ rbx.platform.typedef.uint_least16_t = ushort
168
+ rbx.platform.typedef.uint_least32_t = uint
169
+ rbx.platform.typedef.uint_least64_t = ulong
170
+ rbx.platform.typedef.uint_least8_t = uchar
171
+ rbx.platform.typedef.uintmax_t = ulong
172
+ rbx.platform.typedef.uintptr_t = ulong
103
173
  rbx.platform.typedef.ulong = ulong
104
174
  rbx.platform.typedef.ushort = ushort
175
+ rbx.platform.typedef.wchar_t = uint
data/lib/ffi/pointer.rb CHANGED
@@ -45,12 +45,12 @@ module FFI
45
45
  SIZE = Platform::ADDRESS_SIZE / 8 unless const_defined?(:SIZE)
46
46
 
47
47
  # Return the size of a pointer on the current platform, in bytes
48
- # @return [Numeric]
48
+ # @return [Integer]
49
49
  def self.size
50
50
  SIZE
51
51
  end unless respond_to?(:size)
52
52
 
53
- # @param [nil,Numeric] len length of string to return
53
+ # @param [nil,Integer] len length of string to return
54
54
  # @return [String]
55
55
  # Read pointer's contents as a string, or the first +len+ bytes of the
56
56
  # equivalent string if +len+ is not +nil+.
@@ -63,7 +63,7 @@ module FFI
63
63
  end
64
64
  end unless method_defined?(:read_string)
65
65
 
66
- # @param [Numeric] len length of string to return
66
+ # @param [Integer] len length of string to return
67
67
  # @return [String]
68
68
  # Read the first +len+ bytes of pointer's contents as a string.
69
69
  #
@@ -83,7 +83,7 @@ module FFI
83
83
  end unless method_defined?(:read_string_to_null)
84
84
 
85
85
  # @param [String] str string to write
86
- # @param [Numeric] len length of string to return
86
+ # @param [Integer] len length of string to return
87
87
  # @return [self]
88
88
  # Write +len+ first bytes of +str+ in pointer's contents.
89
89
  #
@@ -94,7 +94,7 @@ module FFI
94
94
  end unless method_defined?(:write_string_length)
95
95
 
96
96
  # @param [String] str string to write
97
- # @param [Numeric] len length of string to return
97
+ # @param [Integer] len length of string to return
98
98
  # @return [self]
99
99
  # Write +str+ in pointer's contents, or first +len+ bytes if
100
100
  # +len+ is not +nil+.
@@ -106,7 +106,7 @@ module FFI
106
106
 
107
107
  # @param [Type] type type of data to read from pointer's contents
108
108
  # @param [Symbol] reader method to send to +self+ to read +type+
109
- # @param [Numeric] length
109
+ # @param [Integer] length
110
110
  # @return [Array]
111
111
  # Read an array of +type+ of length +length+.
112
112
  # @example
data/lib/ffi/struct.rb CHANGED
@@ -41,12 +41,12 @@ module FFI
41
41
  class Struct
42
42
 
43
43
  # Get struct size
44
- # @return [Numeric]
44
+ # @return [Integer]
45
45
  def size
46
46
  self.class.size
47
47
  end
48
48
 
49
- # @return [Fixnum] Struct alignment
49
+ # @return [Integer] Struct alignment
50
50
  def alignment
51
51
  self.class.alignment
52
52
  end
@@ -87,13 +87,13 @@ module FFI
87
87
  end
88
88
 
89
89
  # Get struct size
90
- # @return [Numeric]
90
+ # @return [Integer]
91
91
  def self.size
92
92
  defined?(@layout) ? @layout.size : defined?(@size) ? @size : 0
93
93
  end
94
94
 
95
95
  # set struct size
96
- # @param [Numeric] size
96
+ # @param [Integer] size
97
97
  # @return [size]
98
98
  def self.size=(size)
99
99
  raise ArgumentError, "Size already set" if defined?(@size) || defined?(@layout)
@@ -35,13 +35,13 @@ module FFI
35
35
 
36
36
  class StructLayout
37
37
 
38
- # @return [Array<Array(Symbol, Numeric)>
38
+ # @return [Array<Array(Symbol, Integer)>
39
39
  # Get an array of tuples (field name, offset of the field).
40
40
  def offsets
41
41
  members.map { |m| [ m, self[m].offset ] }
42
42
  end
43
43
 
44
- # @return [Numeric]
44
+ # @return [Integer]
45
45
  # Get the offset of a field.
46
46
  def offset_of(field_name)
47
47
  self[field_name].offset
@@ -46,13 +46,13 @@ module FFI
46
46
  end
47
47
 
48
48
  # Set size attribute with +size+ only if +size+ is greater than attribute value.
49
- # @param [Numeric] size
49
+ # @param [Integer] size
50
50
  def size=(size)
51
51
  @size = size if size > @size
52
52
  end
53
53
 
54
54
  # Set alignment attribute with +align+ only if it is greater than attribute value.
55
- # @param [Numeric] align
55
+ # @param [Integer] align
56
56
  def alignment=(align)
57
57
  @alignment = align if align > @alignment
58
58
  @min_alignment = align
@@ -78,7 +78,7 @@ module FFI
78
78
  # @overload packed=(packed) Set alignment and packed attributes to
79
79
  # +packed+.
80
80
  #
81
- # @param [Fixnum] packed
81
+ # @param [Integer] packed
82
82
  #
83
83
  # @return [packed]
84
84
  # @overload packed=(packed) Set packed attribute.
@@ -116,7 +116,7 @@ module FFI
116
116
 
117
117
  # @param [String, Symbol] name name of the field
118
118
  # @param [Array, DataConverter, Struct, StructLayout::Field, Symbol, Type] type type of the field
119
- # @param [Numeric, nil] offset
119
+ # @param [Integer, nil] offset
120
120
  # @return [self]
121
121
  # Add a field to the builder.
122
122
  # @note Setting +offset+ to +nil+ or +-1+ is equivalent to +0+.
@@ -154,7 +154,7 @@ module FFI
154
154
 
155
155
  # @param name (see #add)
156
156
  # @param type (see #add)
157
- # @param [Numeric] count array length
157
+ # @param [Integer] count array length
158
158
  # @param offset (see #add)
159
159
  # @return (see #add)
160
160
  # Add an array as a field to the builder.
@@ -175,9 +175,9 @@ module FFI
175
175
 
176
176
  private
177
177
 
178
- # @param [Numeric] offset
179
- # @param [Numeric] align
180
- # @return [Numeric]
178
+ # @param [Integer] offset
179
+ # @param [Integer] align
180
+ # @return [Integer]
181
181
  def align(offset, align)
182
182
  align + ((offset - 1) & ~(align - 1));
183
183
  end