A
allow-none
NULL is OK, both for passing and for returning.
array
Parameter points to an array of items.
C
closure
This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.
constructor
This symbol is a constructor, not a static method.
E
element-type
Generics and defining elements of containers and arrays.
I
inout
Parameter for input and for returning results. Default is transfer full.
N
not nullable
NULL must not be passed as the value in, out, in-out; or as a return value.
nullable
NULL may be passed as the value in, out, in-out; or as a return value.
O
optional
NULL may be passed instead of a pointer to a location.
out
Parameter for returning results. Default is transfer full.
out caller-allocates
Out parameter, where caller must allocate storage.
P
Private
An interface that can be used within the GNOME stack itself, but that is not
documented for end-users. Such functions should only be used in specified and
documented ways.
R
rename-to
Rename the original symbol's name to SYMBOL.
S
scope call
The callback is valid only during the call to the method.
skip
Exposed in C code, not necessarily available in other languages.
T
transfer container
Free data container after the code is done.
transfer full
Free data after the code is done.
transfer none
Don't free data after the code is done.
type
Override the parsed C type with given type.
U
Unstable
Unstable interfaces are experimental or transitional. They are typically used to
give outside developers early access to new or rapidly changing technology, or
to provide an interim solution to a problem where a more general solution is
anticipated. No claims are made about either source or binary compatibility from
one minor release to the next.
The Unstable interface level is a warning that these interfaces are subject to
change without warning and should not be used in unbundled products.
Given such caveats, customer impact need not be a factor when considering
incompatible changes to an Unstable interface in a major or minor release.
Nonetheless, when such changes are introduced, the changes should still be
mentioned in the release notes for the affected release.