| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - libffi - Copyright (c) 1996-2025 Anthony Green, Red Hat, Inc and others. | ||
| 1 | + libffi - Copyright (c) 1996-2026 Anthony Green, Red Hat, Inc and others. | ||
| 2 | 2 | See source files for details. | |
| 3 | 3 | ||
| 4 | 4 | Permission is hereby granted, free of charge, to any person obtaining | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,5 @@ | |||
| 1 | 1 | ||
| 2 | - libffi-3.6.0 was released on June 20, 2026. | ||
| 2 | + libffi-3.7.1 was released on July 10, 2026. | ||
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | 5 | What is libffi? | |
@@ -201,6 +201,30 @@ History | |||
| 201 | 201 | ||
| 202 | 202 | See the git log for details at http://github.com/libffi/libffi. | |
| 203 | 203 | ||
| 204 | + 3.7.1 July-10-2026 | ||
| 205 | + Fix aarch64 ffi_call memory corruption when passing many large | ||
| 206 | + structs by value. | ||
| 207 | + Fix i386 thiscall/fastcall closure stack cleanup for 64-bit | ||
| 208 | + integer and struct arguments. | ||
| 209 | + Fix aarch64 int128 argument split between x7 and the stack on | ||
| 210 | + Darwin (#993). | ||
| 211 | + Fix aarch64 clang-cl link failure for HFA helper functions (#996). | ||
| 212 | + Build a generic ffi_call_plan fallback on Windows x86-64. | ||
| 213 | + Add Windows ARM64 (MSVC) build and continuous integration support. | ||
| 214 | + | ||
| 215 | + 3.7.0 July-7-2026 | ||
| 216 | + Add reusable call plans (ffi_call_plan_alloc/ffi_call_plan_invoke/ffi_call_plan_free). | ||
| 217 | + Fix PA-RISC build broken by the conditional __int128 support added in 3.6.0. | ||
| 218 | + Fix PA-RISC stack overflow passing many small structs by value. | ||
| 219 | + Fix powerpc aix/darwin closure build errors (#987). | ||
| 220 | + Include .note.GNU-stack on FreeBSD/x86 (#991). | ||
| 221 | + Fix MSVC Win32 spin-lock atomics in bundled dlmalloc (#989). | ||
| 222 | + Harden static trampoline and x86_64 closure internals. | ||
| 223 | + Fix ffi_call clobbering the caller's argument pointer array | ||
| 224 | + when passing large structs by value. | ||
| 225 | + Allow a NULL rvalue in ffi_call to discard the return value. | ||
| 226 | + Fix wasm widening of integral returns narrower than ffi_arg. | ||
| 227 | + | ||
| 204 | 228 | 3.6.0 Jun-20-2026 | |
| 205 | 229 | Add LoongArch32 support. | |
| 206 | 230 | Add RISC-V static trampoline support. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,6 @@ | |||
| 1 | 1 | #! /bin/sh | |
| 2 | 2 | # Guess values for system-dependent variables and create Makefiles. | |
| 3 | - # Generated by GNU Autoconf 2.71 for libffi 3.6.0. | ||
| 3 | + # Generated by GNU Autoconf 2.71 for libffi 3.7.1. | ||
| 4 | 4 | # | |
| 5 | 5 | # Report bugs to <http://github.com/libffi/libffi/issues>. | |
| 6 | 6 | # | |
@@ -621,8 +621,8 @@ MAKEFLAGS= | |||
| 621 | 621 | # Identity of this package. | |
| 622 | 622 | PACKAGE_NAME='libffi' | |
| 623 | 623 | PACKAGE_TARNAME='libffi' | |
| 624 | - PACKAGE_VERSION='3.6.0' | ||
| 625 | - PACKAGE_STRING='libffi 3.6.0' | ||
| 624 | + PACKAGE_VERSION='3.7.1' | ||
| 625 | + PACKAGE_STRING='libffi 3.7.1' | ||
| 626 | 626 | PACKAGE_BUGREPORT='http://github.com/libffi/libffi/issues' | |
| 627 | 627 | PACKAGE_URL='' | |
| 628 | 628 | ||
@@ -1417,7 +1417,7 @@ if test "$ac_init_help" = "long"; then | |||
| 1417 | 1417 | # Omit some internal or obsolete options to make the list less imposing. | |
| 1418 | 1418 | # This message is too long to be a string in the A/UX 3.1 sh. | |
| 1419 | 1419 | cat <<_ACEOF | |
| 1420 | - \`configure' configures libffi 3.6.0 to adapt to many kinds of systems. | ||
| 1420 | + \`configure' configures libffi 3.7.1 to adapt to many kinds of systems. | ||
| 1421 | 1421 | ||
| 1422 | 1422 | Usage: $0 [OPTION]... [VAR=VALUE]... | |
| 1423 | 1423 | ||
@@ -1489,7 +1489,7 @@ fi | |||
| 1489 | 1489 | ||
| 1490 | 1490 | if test -n "$ac_init_help"; then | |
| 1491 | 1491 | case $ac_init_help in | |
| 1492 | - short | recursive ) echo "Configuration of libffi 3.6.0:";; | ||
| 1492 | + short | recursive ) echo "Configuration of libffi 3.7.1:";; | ||
| 1493 | 1493 | esac | |
| 1494 | 1494 | cat <<\_ACEOF | |
| 1495 | 1495 | ||
@@ -1628,7 +1628,7 @@ fi | |||
| 1628 | 1628 | test -n "$ac_init_help" && exit $ac_status | |
| 1629 | 1629 | if $ac_init_version; then | |
| 1630 | 1630 | cat <<\_ACEOF | |
| 1631 | - libffi configure 3.6.0 | ||
| 1631 | + libffi configure 3.7.1 | ||
| 1632 | 1632 | generated by GNU Autoconf 2.71 | |
| 1633 | 1633 | ||
| 1634 | 1634 | Copyright (C) 2021 Free Software Foundation, Inc. | |
@@ -2259,7 +2259,7 @@ cat >config.log <<_ACEOF | |||
| 2259 | 2259 | This file contains any messages produced by compilers while | |
| 2260 | 2260 | running configure, to aid debugging if configure makes a mistake. | |
| 2261 | 2261 | ||
| 2262 | - It was created by libffi $as_me 3.6.0, which was | ||
| 2262 | + It was created by libffi $as_me 3.7.1, which was | ||
| 2263 | 2263 | generated by GNU Autoconf 2.71. Invocation command line was | |
| 2264 | 2264 | ||
| 2265 | 2265 | $ $0$ac_configure_args_raw | |
@@ -3233,8 +3233,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu | |||
| 3233 | 3233 | ac_config_headers="$ac_config_headers fficonfig.h" | |
| 3234 | 3234 | ||
| 3235 | 3235 | ||
| 3236 | - FFI_VERSION_STRING="3.5.2" | ||
| 3237 | - FFI_VERSION_NUMBER=30502 | ||
| 3236 | + FFI_VERSION_STRING="3.7.1" | ||
| 3237 | + ffi_version_major=`echo "3.7.1" | cut -d. -f1` | ||
| 3238 | + ffi_version_minor=`echo "3.7.1" | cut -d. -f2 | sed 's/[^0-9].*//'` | ||
| 3239 | + ffi_version_micro=`echo "3.7.1" | cut -d. -f3 | sed 's/[^0-9].*//'` | ||
| 3240 | + FFI_VERSION_NUMBER=`expr ${ffi_version_major:-0} \* 10000 + ${ffi_version_minor:-0} \* 100 + ${ffi_version_micro:-0}` | ||
| 3238 | 3241 | ||
| 3239 | 3242 | ||
| 3240 | 3243 | ||
@@ -3983,7 +3986,7 @@ fi | |||
| 3983 | 3986 | ||
| 3984 | 3987 | # Define the identity of the package. | |
| 3985 | 3988 | PACKAGE='libffi' | |
| 3986 | - VERSION='3.6.0' | ||
| 3989 | + VERSION='3.7.1' | ||
| 3987 | 3990 | ||
| 3988 | 3991 | ||
| 3989 | 3992 | printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h | |
@@ -20658,7 +20661,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | |||
| 20658 | 20661 | # report actual input values of CONFIG_FILES etc. instead of their | |
| 20659 | 20662 | # values after options handling. | |
| 20660 | 20663 | ac_log=" | |
| 20661 | - This file was extended by libffi $as_me 3.6.0, which was | ||
| 20664 | + This file was extended by libffi $as_me 3.7.1, which was | ||
| 20662 | 20665 | generated by GNU Autoconf 2.71. Invocation command line was | |
| 20663 | 20666 | ||
| 20664 | 20667 | CONFIG_FILES = $CONFIG_FILES | |
@@ -20726,7 +20729,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ | |||
| 20726 | 20729 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | |
| 20727 | 20730 | ac_cs_config='$ac_cs_config_escaped' | |
| 20728 | 20731 | ac_cs_version="\\ | |
| 20729 | - libffi config.status 3.6.0 | ||
| 20732 | + libffi config.status 3.7.1 | ||
| 20730 | 20733 | configured by $0, generated by GNU Autoconf 2.71, | |
| 20731 | 20734 | with options \\"\$ac_cs_config\\" | |
| 20732 | 20735 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2,11 +2,17 @@ dnl Process this with autoconf to create configure | |||
| 2 | 2 | ||
| 3 | 3 | AC_PREREQ([2.68]) | |
| 4 | 4 | ||
| 5 | - AC_INIT([libffi],[3.6.0],[http://github.com/libffi/libffi/issues]) | ||
| 5 | + AC_INIT([libffi],[3.7.1],[http://github.com/libffi/libffi/issues]) | ||
| 6 | 6 | AC_CONFIG_HEADERS([fficonfig.h]) | |
| 7 | 7 | ||
| 8 | - FFI_VERSION_STRING="3.5.2" | ||
| 9 | - FFI_VERSION_NUMBER=30502 | ||
| 8 | + dnl Derive the version macros from AC_INIT so they cannot drift when the | ||
| 9 | + dnl release version is bumped. FFI_VERSION_NUMBER encodes X.Y.Z as | ||
| 10 | + dnl X*10000 + Y*100 + Z, ignoring any non-numeric suffix (e.g. -rc0). | ||
| 11 | + FFI_VERSION_STRING="AC_PACKAGE_VERSION" | ||
| 12 | + ffi_version_major=`echo "AC_PACKAGE_VERSION" | cut -d. -f1` | ||
| 13 | + ffi_version_minor=`echo "AC_PACKAGE_VERSION" | cut -d. -f2 | sed 's/[[^0-9]].*//'` | ||
| 14 | + ffi_version_micro=`echo "AC_PACKAGE_VERSION" | cut -d. -f3 | sed 's/[[^0-9]].*//'` | ||
| 15 | + FFI_VERSION_NUMBER=`expr ${ffi_version_major:-0} \* 10000 + ${ffi_version_minor:-0} \* 100 + ${ffi_version_micro:-0}` | ||
| 10 | 16 | AC_SUBST(FFI_VERSION_STRING) | |
| 11 | 17 | AC_SUBST(FFI_VERSION_NUMBER) | |
| 12 | 18 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,7 +3,7 @@ This is libffi.info, produced by makeinfo version 7.1 from libffi.texi. | |||
| 3 | 3 | This manual is for libffi, a portable foreign function interface | |
| 4 | 4 | library. | |
| 5 | 5 | ||
| 6 | - Copyright © 2008-2025 Anthony Green and Red Hat, Inc. | ||
| 6 | + Copyright © 2008-2026 Anthony Green and Red Hat, Inc. | ||
| 7 | 7 | ||
| 8 | 8 | Permission is hereby granted, free of charge, to any person obtaining | |
| 9 | 9 | a copy of this software and associated documentation files (the | |
@@ -38,7 +38,7 @@ libffi | |||
| 38 | 38 | This manual is for libffi, a portable foreign function interface | |
| 39 | 39 | library. | |
| 40 | 40 | ||
| 41 | - Copyright © 2008-2025 Anthony Green and Red Hat, Inc. | ||
| 41 | + Copyright © 2008-2026 Anthony Green and Red Hat, Inc. | ||
| 42 | 42 | ||
| 43 | 43 | Permission is hereby granted, free of charge, to any person obtaining | |
| 44 | 44 | a copy of this software and associated documentation files (the | |
@@ -112,6 +112,7 @@ File: libffi.info, Node: Using libffi, Next: Memory Usage, Prev: Introduction | |||
| 112 | 112 | * Simple Example:: A simple example. | |
| 113 | 113 | * Types:: libffi type descriptions. | |
| 114 | 114 | * Multiple ABIs:: Different passing styles on one platform. | |
| 115 | + * Reusable Call Plans:: Building a call plan once and reusing it. | ||
| 115 | 116 | * The Closure API:: Writing a generic function. | |
| 116 | 117 | * Closure Example:: A closure example. | |
| 117 | 118 | * Thread Safety:: Thread safety. | |
@@ -200,6 +201,11 @@ function: | |||
| 200 | 201 | responsibility to ensure this. If CIF declares that the function | |
| 201 | 202 | returns ‘void’ (using ‘ffi_type_void’), then RVALUE is ignored. | |
| 202 | 203 | ||
| 204 | + RVALUE may also be ‘NULL’, in which case the call is performed and | ||
| 205 | + the return value is discarded. This works for any return type, | ||
| 206 | + including structures returned in memory; ‘libffi’ supplies internal | ||
| 207 | + scratch space for the callee when needed. | ||
| 208 | + | ||
| 203 | 209 | In most situations, ‘libffi’ will handle promotion according to the | |
| 204 | 210 | ABI. However, for historical reasons, there is a special case with | |
| 205 | 211 | return values that must be handled by your code. In particular, | |
@@ -213,7 +219,9 @@ function: | |||
| 213 | 219 | AVALUES is a vector of ‘void *’ pointers that point to the memory | |
| 214 | 220 | locations holding the argument values for a call. If CIF declares | |
| 215 | 221 | that the function has no arguments (i.e., NARGS was 0), then | |
| 216 | - AVALUES is ignored. | ||
| 222 | + AVALUES is ignored. ‘ffi_call’ does not modify the vector or the | ||
| 223 | + argument values it points to, so both may be reused for subsequent | ||
| 224 | + calls. | ||
| 217 | 225 | ||
| 218 | 226 | Note that while the return value must be register-sized, arguments | |
| 219 | 227 | should exactly match their declared type. For example, if an | |
@@ -739,7 +747,7 @@ compilers that support them: | |||
| 739 | 747 | type descriptors in the previous example. | |
| 740 | 748 | ||
| 741 | 749 | ||
| 742 | - File: libffi.info, Node: Multiple ABIs, Next: The Closure API, Prev: Types, Up: Using libffi | ||
| 750 | + File: libffi.info, Node: Multiple ABIs, Next: Reusable Call Plans, Prev: Types, Up: Using libffi | ||
| 743 | 751 | ||
| 744 | 752 | 2.4 Multiple ABIs | |
| 745 | 753 | ================= | |
@@ -751,9 +759,46 @@ instance, the x86 platform has both ‘stdcall’ and ‘fastcall’ functions. | |||
| 751 | 759 | necessarily platform-specific. | |
| 752 | 760 | ||
| 753 | 761 | ||
| 754 | - File: libffi.info, Node: The Closure API, Next: Closure Example, Prev: Multiple ABIs, Up: Using libffi | ||
| 762 | + File: libffi.info, Node: Reusable Call Plans, Next: The Closure API, Prev: Multiple ABIs, Up: Using libffi | ||
| 763 | + | ||
| 764 | + 2.5 Reusable Call Plans | ||
| 765 | + ======================= | ||
| 766 | + | ||
| 767 | + When the same signature is called many times - as language bindings | ||
| 768 | + typically do - you can build a “call plan” once and reuse it, so that | ||
| 769 | + each call avoids the work ‘ffi_call’ would otherwise repeat on every | ||
| 770 | + invocation. A plan is an opaque, caller-owned object built from a | ||
| 771 | + prepared ‘ffi_cif’. | ||
| 772 | + | ||
| 773 | + -- Function: ffi_call_plan * ffi_call_plan_alloc (ffi_cif *CIF) | ||
| 774 | + Builds and returns a reusable plan for the signature described by | ||
| 775 | + CIF, which must already have been prepared with ‘ffi_prep_cif’. | ||
| 776 | + The plan does not copy CIF; CIF must remain valid for as long as | ||
| 777 | + the plan is used. | ||
| 778 | + | ||
| 779 | + Returns ‘NULL’ only when memory cannot be allocated. A signature | ||
| 780 | + for which no accelerated path exists is still valid: the returned | ||
| 781 | + plan simply falls back to ‘ffi_call’ when it is invoked. | ||
| 782 | + | ||
| 783 | + -- Function: void ffi_call_plan_invoke (ffi_call_plan *PLAN, void *FN, | ||
| 784 | + void *RVALUE, void **AVALUES) | ||
| 785 | + Calls FN using PLAN. The FN, RVALUE, and AVALUES arguments have | ||
| 786 | + exactly the same meaning as for ‘ffi_call’ (*note The Basics::), | ||
| 787 | + including the rule that integral return values narrower than a | ||
| 788 | + register are widened to ‘ffi_arg’. | ||
| 789 | + | ||
| 790 | + A plan is immutable once built, so a single plan may be invoked | ||
| 791 | + concurrently from multiple threads without additional locking. | ||
| 792 | + | ||
| 793 | + -- Function: void ffi_call_plan_free (ffi_call_plan *PLAN) | ||
| 794 | + Releases a plan returned by ‘ffi_call_plan_alloc’. Passing ‘NULL’ | ||
| 795 | + is harmless. The ‘ffi_cif’ the plan was built from is not | ||
| 796 | + affected. | ||
| 797 | + | ||
| 798 | + | ||
| 799 | + File: libffi.info, Node: The Closure API, Next: Closure Example, Prev: Reusable Call Plans, Up: Using libffi | ||
| 755 | 800 | ||
| 756 | - 2.5 The Closure API | ||
| 801 | + 2.6 The Closure API | ||
| 757 | 802 | =================== | |
| 758 | 803 | ||
| 759 | 804 | ‘libffi’ also provides a way to write a generic function - a function | |
@@ -857,7 +902,7 @@ executable addresses. | |||
| 857 | 902 | ||
| 858 | 903 | File: libffi.info, Node: Closure Example, Next: Thread Safety, Prev: The Closure API, Up: Using libffi | |
| 859 | 904 | ||
| 860 | - 2.6 Closure Example | ||
| 905 | + 2.7 Closure Example | ||
| 861 | 906 | =================== | |
| 862 | 907 | ||
| 863 | 908 | A trivial example that creates a new ‘puts’ by binding ‘fputs’ with | |
@@ -916,7 +961,7 @@ A trivial example that creates a new ‘puts’ by binding ‘fputs’ with | |||
| 916 | 961 | ||
| 917 | 962 | File: libffi.info, Node: Thread Safety, Prev: Closure Example, Up: Using libffi | |
| 918 | 963 | ||
| 919 | - 2.7 Thread Safety | ||
| 964 | + 2.8 Thread Safety | ||
| 920 | 965 | ================= | |
| 921 | 966 | ||
| 922 | 967 | ‘libffi’ is not completely thread-safe. However, many parts are, and if | |
@@ -1004,17 +1049,21 @@ Index | |||
| 1004 | 1049 | * cif: The Basics. (line 14) | |
| 1005 | 1050 | * closure API: The Closure API. (line 13) | |
| 1006 | 1051 | * closures: The Closure API. (line 13) | |
| 1007 | - * const char *: The Basics. (line 106) | ||
| 1052 | + * const char *: The Basics. (line 113) | ||
| 1008 | 1053 | * FFI: Introduction. (line 31) | |
| 1009 | 1054 | * ffi_call: The Basics. (line 72) | |
| 1055 | + * ffi_call_plan *: Reusable Call Plans. (line 12) | ||
| 1056 | + * ffi_call_plan_alloc: Reusable Call Plans. (line 12) | ||
| 1057 | + * ffi_call_plan_free: Reusable Call Plans. (line 32) | ||
| 1058 | + * ffi_call_plan_invoke: Reusable Call Plans. (line 22) | ||
| 1010 | 1059 | * ffi_closure_alloc: The Closure API. (line 19) | |
| 1011 | 1060 | * ffi_closure_free: The Closure API. (line 26) | |
| 1012 | 1061 | * FFI_CLOSURES: The Closure API. (line 13) | |
| 1013 | - * ffi_get_closure_size: The Basics. (line 118) | ||
| 1014 | - * ffi_get_default_abi: The Basics. (line 115) | ||
| 1062 | + * ffi_get_closure_size: The Basics. (line 125) | ||
| 1063 | + * ffi_get_default_abi: The Basics. (line 122) | ||
| 1015 | 1064 | * ffi_get_struct_offsets: Size and Alignment. (line 39) | |
| 1016 | - * ffi_get_version: The Basics. (line 106) | ||
| 1017 | - * ffi_get_version_number: The Basics. (line 110) | ||
| 1065 | + * ffi_get_version: The Basics. (line 113) | ||
| 1066 | + * ffi_get_version_number: The Basics. (line 117) | ||
| 1018 | 1067 | * ffi_prep_cif: The Basics. (line 16) | |
| 1019 | 1068 | * ffi_prep_cif_var: The Basics. (line 39) | |
| 1020 | 1069 | * ffi_prep_closure_loc: The Closure API. (line 41) | |
@@ -1051,36 +1100,39 @@ Index | |||
| 1051 | 1100 | * ffi_type_ushort: Primitive Types. (line 53) | |
| 1052 | 1101 | * ffi_type_void: Primitive Types. (line 10) | |
| 1053 | 1102 | * Foreign Function Interface: Introduction. (line 31) | |
| 1054 | - * size_t: The Basics. (line 118) | ||
| 1055 | - * unsigned int: The Basics. (line 115) | ||
| 1056 | - * unsigned long: The Basics. (line 110) | ||
| 1103 | + * size_t: The Basics. (line 125) | ||
| 1104 | + * unsigned int: The Basics. (line 122) | ||
| 1105 | + * unsigned long: The Basics. (line 117) | ||
| 1057 | 1106 | * void: The Basics. (line 72) | |
| 1058 | - * void <1>: The Closure API. (line 19) | ||
| 1059 | - * void <2>: The Closure API. (line 26) | ||
| 1107 | + * void <1>: Reusable Call Plans. (line 22) | ||
| 1108 | + * void <2>: Reusable Call Plans. (line 32) | ||
| 1109 | + * void <3>: The Closure API. (line 19) | ||
| 1110 | + * void <4>: The Closure API. (line 26) | ||
| 1060 | 1111 | ||
| 1061 | 1112 | ||
| 1062 | 1113 | ||
| 1063 | 1114 | Tag Table: | |
| 1064 | 1115 | Node: Top1387 | |
| 1065 | 1116 | Node: Introduction2909 | |
| 1066 | 1117 | Node: Using libffi4569 | |
| 1067 | - Node: The Basics5098 | ||
| 1068 | - Node: Simple Example10868 | ||
| 1069 | - Node: Types11925 | ||
| 1070 | - Node: Primitive Types12436 | ||
| 1071 | - Node: Structures14753 | ||
| 1072 | - Node: Size and Alignment15864 | ||
| 1073 | - Node: Arrays Unions Enums18135 | ||
| 1074 | - Node: Type Example21112 | ||
| 1075 | - Node: Complex22418 | ||
| 1076 | - Node: Complex Type Example23932 | ||
| 1077 | - Node: Multiple ABIs26984 | ||
| 1078 | - Node: The Closure API27367 | ||
| 1079 | - Node: Closure Example31703 | ||
| 1080 | - Node: Thread Safety33347 | ||
| 1081 | - Node: Memory Usage34180 | ||
| 1082 | - Node: Missing Features35455 | ||
| 1083 | - Node: Index35832 | ||
| 1118 | + Node: The Basics5172 | ||
| 1119 | + Node: Simple Example11346 | ||
| 1120 | + Node: Types12403 | ||
| 1121 | + Node: Primitive Types12914 | ||
| 1122 | + Node: Structures15231 | ||
| 1123 | + Node: Size and Alignment16342 | ||
| 1124 | + Node: Arrays Unions Enums18613 | ||
| 1125 | + Node: Type Example21590 | ||
| 1126 | + Node: Complex22896 | ||
| 1127 | + Node: Complex Type Example24410 | ||
| 1128 | + Node: Multiple ABIs27462 | ||
| 1129 | + Node: Reusable Call Plans27849 | ||
| 1130 | + Node: The Closure API29566 | ||
| 1131 | + Node: Closure Example33908 | ||
| 1132 | + Node: Thread Safety35552 | ||
| 1133 | + Node: Memory Usage36385 | ||
| 1134 | + Node: Missing Features37660 | ||
| 1135 | + Node: Index38037 | ||
| 1084 | 1136 | ||
| 1085 | 1137 | End Tag Table | |
| 1086 | 1138 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments