From 72b3fff72f6bb9cf5796bbcd50e9a490d4e02b4b Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 23 Jan 2011 14:23:21 +0100 Subject: FFI: Simplify initializer rules. Clarify docs. --- doc/ext_ffi_api.html | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'doc/ext_ffi_api.html') diff --git a/doc/ext_ffi_api.html b/doc/ext_ffi_api.html index f985d965..f0c4de90 100644 --- a/doc/ext_ffi_api.html +++ b/doc/ext_ffi_api.html @@ -195,23 +195,10 @@ require the nelem argument. The second syntax uses a ctype as a constructor and is otherwise fully equivalent.

-The init arguments provide optional initializers. The created -cdata object is filled with zero bytes if no initializers are given. -Scalar types accept a single initializer. Aggregates can either be -initialized with a flat list of initializers or a single aggregate -initializer (see the C type -conversion rules). Excess initializers cause an error. -

-

-If a single initializer is given for an array, it's repeated for all -remaining elements. This doesn't happen if two or more initializers -are given — all uninitialized elements are filled with zero -bytes. The fields of a struct are initialized in the order of -their declaration. Uninitialized fields are filled with zero bytes. -Only the first field of union can be initialized with a flat -initializer. Elements or fields which are aggregates themselves are -initialized with a single init argument, but this -may be an aggregate initializer of course. +The cdata object is initialized according to the +rules for initializers, +using the optional init arguments. Excess initializers cause +an error.

Performance notice: if you want to create many objects of one kind, @@ -357,8 +344,8 @@ order of arguments!

status = ffi.abi(param)

Returns true if param (a Lua string) applies for the -target ABI (Application Binary Interface). Otherwise returns -false. The following parameters are currently defined: +target ABI (Application Binary Interface). Returns false +otherwise. The following parameters are currently defined:

-- cgit v1.2.3-55-g6feb