Expand description

Raw bindings to Apple’s C language extension of blocks

The documentation for these bindings is a mix from GNUStep’s and Apple’s sources, but the ABI specification is really the place you should be looking!

See also the README.md for more background information, and for how to configure the desired runtime.

Structs

Structure used for on-stack variables that are referenced by blocks.

Structure used for on-stack variables that are referenced by blocks.

Structure used for on-stack variables that are referenced by blocks.

Block descriptor that contains copy and dispose operations.

Extended block descriptor that does not contain copy and dispose helper functions.

Requires BLOCK_HAS_COPY_DISPOSE and BLOCK_HAS_SIGNATURE

Constants

The field is an indirect reference to a variable declared with the __block storage qualifier.

The field is a block. This must be copied by the block copy functions.

The field is an indirect reference to a variable declared with the __block storage qualifier.

The value is of some id-like type, and should be copied as an Objective-C object: i.e. by sending -retain or via the GC assign functions in GC mode (not yet supported).

The field is an indirect reference to a variable declared with the __block storage qualifier.

The block descriptor contains copy and dispose helpers. compiler

The helpers have C++ code. compiler: helpers have C++ code

Block has an Objective-C type encoding. compiler

compiler

Block is stored in global memory and does not need to be copied. compiler

compiler

runtime

Block function uses a calling convention that returns a structure via a pointer passed in by the caller.

Statics

Functions

Block_sizeapple or compiler-rt

Runtime entry point called by compiler when assigning objects inside copy helper routines

runtime entry point called by the compiler when disposing of objects inside dispose helper routine

Type Definitions

Flags used in the final argument to _Block_object_assign() and _Block_object_dispose(). These indicate the type of copy or dispose to perform. Values for _Block_object_assign() and _Block_object_dispose() parameters

Block descriptor flags. Values for Block_layout->flags to describe block objects