Merge branch 'serializ' into 'master'

docs: Standardize spelling of serializ*

Closes #2399

See merge request GNOME/glib!2096
This commit is contained in:
Philip Withnall 2021-05-13 11:37:11 +00:00
commit 56ddba7c34
8 changed files with 193 additions and 193 deletions

View File

@ -431,7 +431,7 @@ g_emblemed_icon_serialize (GIcon *icon)
icon_data = g_icon_serialize (node->data); icon_data = g_icon_serialize (node->data);
if (icon_data) if (icon_data)
{ {
/* We know how emblems serialise, so do a tweak here to /* We know how emblems serialize, so do a tweak here to
* reduce some of the variant wrapping and redundant storage * reduce some of the variant wrapping and redundant storage
* of 'emblem' over and again... * of 'emblem' over and again...
*/ */

View File

@ -81,22 +81,22 @@ struct _GVariant
/* struct GVariant: /* struct GVariant:
* *
* There are two primary forms of GVariant instances: "serialised form" * There are two primary forms of GVariant instances: "serialized form"
* and "tree form". * and "tree form".
* *
* "serialised form": A serialised GVariant instance stores its value in * "serialized form": A serialized GVariant instance stores its value in
* the GVariant serialisation format. All * the GVariant serialization format. All
* basic-typed instances (ie: non-containers) are in * basic-typed instances (ie: non-containers) are in
* serialised format, as are some containers. * serialized format, as are some containers.
* *
* "tree form": Some containers are in "tree form". In this case, * "tree form": Some containers are in "tree form". In this case,
* instead of containing the serialised data for the * instead of containing the serialized data for the
* container, the instance contains an array of pointers to * container, the instance contains an array of pointers to
* the child values of the container (thus forming a tree). * the child values of the container (thus forming a tree).
* *
* It is possible for an instance to transition from tree form to * It is possible for an instance to transition from tree form to
* serialised form. This happens, implicitly, if the serialised data is * serialized form. This happens, implicitly, if the serialized data is
* requested (eg: via g_variant_get_data()). Serialised form instances * requested (eg: via g_variant_get_data()). Serialized form instances
* never transition into tree form. * never transition into tree form.
* *
* *
@ -109,8 +109,8 @@ struct _GVariant
* The type_info field never changes during the life of the * The type_info field never changes during the life of the
* instance, so it can be accessed without a lock. * instance, so it can be accessed without a lock.
* *
* size: this is the size of the serialised form for the instance, if it * size: this is the size of the serialized form for the instance, if it
* is known. If the instance is in serialised form then it is, by * is known. If the instance is in serialized form then it is, by
* definition, known. If the instance is in tree form then it may * definition, known. If the instance is in tree form then it may
* be unknown (in which case it is -1). It is possible for the * be unknown (in which case it is -1). It is possible for the
* size to be known when in tree form if, for example, the user * size to be known when in tree form if, for example, the user
@ -126,33 +126,33 @@ struct _GVariant
* that, the size field can be accessed without a lock. * that, the size field can be accessed without a lock.
* *
* contents: a union containing either the information associated with * contents: a union containing either the information associated with
* holding a value in serialised form or holding a value in * holding a value in serialized form or holding a value in
* tree form. * tree form.
* *
* .serialised: Only valid when the instance is in serialised form. * .serialised: Only valid when the instance is in serialized form.
* *
* Since an instance can never transition away from * Since an instance can never transition away from
* serialised form, once these fields are set, they will * serialized form, once these fields are set, they will
* never be changed. It is therefore valid to access * never be changed. It is therefore valid to access
* them without holding a lock. * them without holding a lock.
* *
* .bytes: the #GBytes that contains the memory pointed to by * .bytes: the #GBytes that contains the memory pointed to by
* .data, or %NULL if .data is %NULL. In the event that * .data, or %NULL if .data is %NULL. In the event that
* the instance was deserialised from another instance, * the instance was deserialized from another instance,
* then the bytes will be shared by both of them. When * then the bytes will be shared by both of them. When
* the instance is freed, this reference must be released * the instance is freed, this reference must be released
* with g_bytes_unref(). * with g_bytes_unref().
* *
* .data: the serialised data (of size 'size') of the instance. * .data: the serialized data (of size 'size') of the instance.
* This pointer should not be freed or modified in any way. * This pointer should not be freed or modified in any way.
* #GBytes is responsible for memory management. * #GBytes is responsible for memory management.
* *
* This pointer may be %NULL in two cases: * This pointer may be %NULL in two cases:
* *
* - if the serialised size of the instance is 0 * - if the serialized size of the instance is 0
* *
* - if the instance is of a fixed-sized type and was * - if the instance is of a fixed-sized type and was
* deserialised out of a corrupted container such that * deserialized out of a corrupted container such that
* the container contains too few bytes to point to the * the container contains too few bytes to point to the
* entire proper fixed-size of this instance. In this * entire proper fixed-size of this instance. In this
* case, 'size' will still be equal to the proper fixed * case, 'size' will still be equal to the proper fixed
@ -165,12 +165,12 @@ struct _GVariant
* .tree: Only valid when the instance is in tree form. * .tree: Only valid when the instance is in tree form.
* *
* Note that accesses from other threads could result in * Note that accesses from other threads could result in
* conversion of the instance from tree form to serialised form * conversion of the instance from tree form to serialized form
* at any time. For this reason, the instance lock must always * at any time. For this reason, the instance lock must always
* be held while performing any operations on 'contents.tree'. * be held while performing any operations on 'contents.tree'.
* *
* .children: the array of the child instances of this instance. * .children: the array of the child instances of this instance.
* When the instance is freed (or converted to serialised * When the instance is freed (or converted to serialized
* form) then each child must have g_variant_unref() * form) then each child must have g_variant_unref()
* called on it and the array must be freed using * called on it and the array must be freed using
* g_free(). * g_free().
@ -183,18 +183,18 @@ struct _GVariant
* STATE_LOCKED: the instance lock is held. This is the bit used by * STATE_LOCKED: the instance lock is held. This is the bit used by
* g_bit_lock(). * g_bit_lock().
* *
* STATE_SERIALISED: the instance is in serialised form. If this * STATE_SERIALISED: the instance is in serialized form. If this
* flag is not set then the instance is in tree * flag is not set then the instance is in tree
* form. * form.
* *
* STATE_TRUSTED: for serialised form instances, this means that the * STATE_TRUSTED: for serialized form instances, this means that the
* serialised data is known to be in normal form (ie: * serialized data is known to be in normal form (ie:
* not corrupted). * not corrupted).
* *
* For tree form instances, this means that all of the * For tree form instances, this means that all of the
* child instances in the contents.tree.children array * child instances in the contents.tree.children array
* are trusted. This means that if the container is * are trusted. This means that if the container is
* serialised then the resulting data will be in * serialized then the resulting data will be in
* normal form. * normal form.
* *
* If this flag is unset it does not imply that the * If this flag is unset it does not imply that the
@ -209,7 +209,7 @@ struct _GVariant
* depth: the depth of the GVariant in a hierarchy of nested containers, * depth: the depth of the GVariant in a hierarchy of nested containers,
* increasing with the level of nesting. The top-most GVariant has depth * increasing with the level of nesting. The top-most GVariant has depth
* zero. This is used to avoid recursing too deeply and overflowing the * zero. This is used to avoid recursing too deeply and overflowing the
* stack when handling deeply nested untrusted serialised GVariants. * stack when handling deeply nested untrusted serialized GVariants.
*/ */
#define STATE_LOCKED 1 #define STATE_LOCKED 1
#define STATE_SERIALISED 2 #define STATE_SERIALISED 2
@ -249,7 +249,7 @@ g_variant_unlock (GVariant *value)
* @value and frees the array itself. @value must be in tree form. * @value and frees the array itself. @value must be in tree form.
* *
* This is done when freeing a tree-form instance or converting it to * This is done when freeing a tree-form instance or converting it to
* serialised form. * serialized form.
* *
* The current thread must hold the lock on @value. * The current thread must hold the lock on @value.
*/ */
@ -267,52 +267,52 @@ g_variant_release_children (GVariant *value)
g_free (value->contents.tree.children); g_free (value->contents.tree.children);
} }
/* This begins the main body of the recursive serialiser. /* This begins the main body of the recursive serializer.
* *
* There are 3 functions here that work as a team with the serialiser to * There are 3 functions here that work as a team with the serializer to
* get things done. g_variant_store() has a trivial role, but as a * get things done. g_variant_store() has a trivial role, but as a
* public API function, it has its definition elsewhere. * public API function, it has its definition elsewhere.
* *
* Note that "serialisation" of an instance does not mean that the * Note that "serialization" of an instance does not mean that the
* instance is converted to serialised form -- it means that the * instance is converted to serialized form -- it means that the
* serialised form of an instance is written to an external buffer. * serialized form of an instance is written to an external buffer.
* g_variant_ensure_serialised() (which is not part of this set of * g_variant_ensure_serialised() (which is not part of this set of
* functions) is the function that is responsible for converting an * functions) is the function that is responsible for converting an
* instance to serialised form. * instance to serialized form.
* *
* We are only concerned here with container types since non-container * We are only concerned here with container types since non-container
* instances are always in serialised form. For these instances, * instances are always in serialized form. For these instances,
* storing their serialised form merely involves a memcpy(). * storing their serialized form merely involves a memcpy().
* *
* Serialisation is a two-step process. First, the size of the * Serialization is a two-step process. First, the size of the
* serialised data must be calculated so that an appropriately-sized * serialized data must be calculated so that an appropriately-sized
* buffer can be allocated. Second, the data is written into the * buffer can be allocated. Second, the data is written into the
* buffer. * buffer.
* *
* Determining the size: * Determining the size:
* The process of determining the size is triggered by a call to * The process of determining the size is triggered by a call to
* g_variant_ensure_size() on a container. This invokes the * g_variant_ensure_size() on a container. This invokes the
* serialiser code to determine the size. The serialiser is passed * serializer code to determine the size. The serializer is passed
* g_variant_fill_gvs() as a callback. * g_variant_fill_gvs() as a callback.
* *
* g_variant_fill_gvs() is called by the serialiser on each child of * g_variant_fill_gvs() is called by the serializer on each child of
* the container which, in turn, calls g_variant_ensure_size() on * the container which, in turn, calls g_variant_ensure_size() on
* itself and fills in the result of its own size calculation. * itself and fills in the result of its own size calculation.
* *
* The serialiser uses the size information from the children to * The serializer uses the size information from the children to
* calculate the size needed for the entire container. * calculate the size needed for the entire container.
* *
* Writing the data: * Writing the data:
* After the buffer has been allocated, g_variant_serialise() is * After the buffer has been allocated, g_variant_serialise() is
* called on the container. This invokes the serialiser code to write * called on the container. This invokes the serializer code to write
* the bytes to the container. The serialiser is, again, passed * the bytes to the container. The serializer is, again, passed
* g_variant_fill_gvs() as a callback. * g_variant_fill_gvs() as a callback.
* *
* This time, when g_variant_fill_gvs() is called for each child, the * This time, when g_variant_fill_gvs() is called for each child, the
* child is given a pointer to a sub-region of the allocated buffer * child is given a pointer to a sub-region of the allocated buffer
* where it should write its data. This is done by calling * where it should write its data. This is done by calling
* g_variant_store(). In the event that the instance is in serialised * g_variant_store(). In the event that the instance is in serialized
* form this means a memcpy() of the serialised data into the * form this means a memcpy() of the serialized data into the
* allocated buffer. In the event that the instance is in tree form * allocated buffer. In the event that the instance is in tree form
* this means a recursive call back into g_variant_serialise(). * this means a recursive call back into g_variant_serialise().
* *
@ -326,7 +326,7 @@ static void g_variant_fill_gvs (GVariantSerialised *, gpointer);
* @value: a #GVariant * @value: a #GVariant
* *
* Ensures that the ->size field of @value is filled in properly. This * Ensures that the ->size field of @value is filled in properly. This
* must be done as a precursor to any serialisation of the value in * must be done as a precursor to any serialization of the value in
* order to know how large of a buffer is needed to store the data. * order to know how large of a buffer is needed to store the data.
* *
* The current thread must hold the lock on @value. * The current thread must hold the lock on @value.
@ -354,7 +354,7 @@ g_variant_ensure_size (GVariant *value)
* @value: a #GVariant * @value: a #GVariant
* @data: an appropriately-sized buffer * @data: an appropriately-sized buffer
* *
* Serialises @value into @data. @value must be in tree form. * Serializes @value into @data. @value must be in tree form.
* *
* No change is made to @value. * No change is made to @value.
* *
@ -389,15 +389,15 @@ g_variant_serialise (GVariant *value,
* @data: a #GVariant instance * @data: a #GVariant instance
* *
* This is the callback that is passed by a tree-form container instance * This is the callback that is passed by a tree-form container instance
* to the serialiser. This callback gets called on each child of the * to the serializer. This callback gets called on each child of the
* container. Each child is responsible for performing the following * container. Each child is responsible for performing the following
* actions: * actions:
* *
* - reporting its type * - reporting its type
* *
* - reporting its serialised size (requires knowing the size first) * - reporting its serialized size (requires knowing the size first)
* *
* - possibly storing its serialised form into the provided buffer * - possibly storing its serialized form into the provided buffer
*/ */
static void static void
g_variant_fill_gvs (GVariantSerialised *serialised, g_variant_fill_gvs (GVariantSerialised *serialised,
@ -425,18 +425,18 @@ g_variant_fill_gvs (GVariantSerialised *serialised,
g_variant_store (value, serialised->data); g_variant_store (value, serialised->data);
} }
/* this ends the main body of the recursive serialiser */ /* this ends the main body of the recursive serializer */
/* < private > /* < private >
* g_variant_ensure_serialised: * g_variant_ensure_serialised:
* @value: a #GVariant * @value: a #GVariant
* *
* Ensures that @value is in serialised form. * Ensures that @value is in serialized form.
* *
* If @value is in tree form then this function ensures that the * If @value is in tree form then this function ensures that the
* serialised size is known and then allocates a buffer of that size and * serialized size is known and then allocates a buffer of that size and
* serialises the instance into the buffer. The 'children' array is * serializes the instance into the buffer. The 'children' array is
* then released and the instance is set to serialised form based on the * then released and the instance is set to serialized form based on the
* contents of the buffer. * contents of the buffer.
* *
* The current thread must hold the lock on @value. * The current thread must hold the lock on @value.
@ -501,8 +501,8 @@ g_variant_alloc (const GVariantType *type,
* @bytes: a #GBytes * @bytes: a #GBytes
* @trusted: if the contents of @bytes are trusted * @trusted: if the contents of @bytes are trusted
* *
* Constructs a new serialised-mode #GVariant instance. This is the * Constructs a new serialized-mode #GVariant instance. This is the
* inner interface for creation of new serialised values that gets * inner interface for creation of new serialized values that gets
* called from various functions in gvariant.c. * called from various functions in gvariant.c.
* *
* A reference is taken on @bytes. * A reference is taken on @bytes.
@ -605,7 +605,7 @@ g_variant_new_from_bytes (const GVariantType *type,
* @trusted: %TRUE if every child in @children in trusted * @trusted: %TRUE if every child in @children in trusted
* *
* Constructs a new tree-mode #GVariant instance. This is the inner * Constructs a new tree-mode #GVariant instance. This is the inner
* interface for creation of new serialised values that gets called from * interface for creation of new serialized values that gets called from
* various functions in gvariant.c. * various functions in gvariant.c.
* *
* @children is consumed by this function. g_free() will be called on * @children is consumed by this function. g_free() will be called on
@ -872,13 +872,13 @@ g_variant_is_floating (GVariant *value)
* If @value has a fixed-sized type then this function always returned * If @value has a fixed-sized type then this function always returned
* that fixed size. * that fixed size.
* *
* In the case that @value is already in serialised form or the size has * In the case that @value is already in serialized form or the size has
* already been calculated (ie: this function has been called before) * already been calculated (ie: this function has been called before)
* then this function is O(1). Otherwise, the size is calculated, an * then this function is O(1). Otherwise, the size is calculated, an
* operation which is approximately O(n) in the number of values * operation which is approximately O(n) in the number of values
* involved. * involved.
* *
* Returns: the serialised size of @value * Returns: the serialized size of @value
* *
* Since: 2.24 * Since: 2.24
**/ **/
@ -896,33 +896,33 @@ g_variant_get_size (GVariant *value)
* g_variant_get_data: * g_variant_get_data:
* @value: a #GVariant instance * @value: a #GVariant instance
* *
* Returns a pointer to the serialised form of a #GVariant instance. * Returns a pointer to the serialized form of a #GVariant instance.
* The returned data may not be in fully-normalised form if read from an * The returned data may not be in fully-normalised form if read from an
* untrusted source. The returned data must not be freed; it remains * untrusted source. The returned data must not be freed; it remains
* valid for as long as @value exists. * valid for as long as @value exists.
* *
* If @value is a fixed-sized value that was deserialised from a * If @value is a fixed-sized value that was deserialized from a
* corrupted serialised container then %NULL may be returned. In this * corrupted serialized container then %NULL may be returned. In this
* case, the proper thing to do is typically to use the appropriate * case, the proper thing to do is typically to use the appropriate
* number of nul bytes in place of @value. If @value is not fixed-sized * number of nul bytes in place of @value. If @value is not fixed-sized
* then %NULL is never returned. * then %NULL is never returned.
* *
* In the case that @value is already in serialised form, this function * In the case that @value is already in serialized form, this function
* is O(1). If the value is not already in serialised form, * is O(1). If the value is not already in serialized form,
* serialisation occurs implicitly and is approximately O(n) in the size * serialization occurs implicitly and is approximately O(n) in the size
* of the result. * of the result.
* *
* To deserialise the data returned by this function, in addition to the * To deserialize the data returned by this function, in addition to the
* serialised data, you must know the type of the #GVariant, and (if the * serialized data, you must know the type of the #GVariant, and (if the
* machine might be different) the endianness of the machine that stored * machine might be different) the endianness of the machine that stored
* it. As a result, file formats or network messages that incorporate * it. As a result, file formats or network messages that incorporate
* serialised #GVariants must include this information either * serialized #GVariants must include this information either
* implicitly (for instance "the file always contains a * implicitly (for instance "the file always contains a
* %G_VARIANT_TYPE_VARIANT and it is always in little-endian order") or * %G_VARIANT_TYPE_VARIANT and it is always in little-endian order") or
* explicitly (by storing the type and/or endianness in addition to the * explicitly (by storing the type and/or endianness in addition to the
* serialised data). * serialized data).
* *
* Returns: (transfer none): the serialised form of @value, or %NULL * Returns: (transfer none): the serialized form of @value, or %NULL
* *
* Since: 2.24 * Since: 2.24
**/ **/
@ -940,7 +940,7 @@ g_variant_get_data (GVariant *value)
* g_variant_get_data_as_bytes: * g_variant_get_data_as_bytes:
* @value: a #GVariant * @value: a #GVariant
* *
* Returns a pointer to the serialised form of a #GVariant instance. * Returns a pointer to the serialized form of a #GVariant instance.
* The semantics of this function are exactly the same as * The semantics of this function are exactly the same as
* g_variant_get_data(), except that the returned #GBytes holds * g_variant_get_data(), except that the returned #GBytes holds
* a reference to the variant data. * a reference to the variant data.
@ -1043,7 +1043,7 @@ g_variant_n_children (GVariant *value)
* *
* Note that values borrowed from the returned child are not guaranteed to * Note that values borrowed from the returned child are not guaranteed to
* still be valid after the child is freed even if you still hold a reference * still be valid after the child is freed even if you still hold a reference
* to @value, if @value has not been serialised at the time this function is * to @value, if @value has not been serialized at the time this function is
* called. To avoid this, you can serialize @value by calling * called. To avoid this, you can serialize @value by calling
* g_variant_get_data() and optionally ignoring the return value. * g_variant_get_data() and optionally ignoring the return value.
* *
@ -1092,8 +1092,8 @@ g_variant_get_child_value (GVariant *value,
GVariantSerialised s_child; GVariantSerialised s_child;
GVariant *child; GVariant *child;
/* get the serialiser to extract the serialised data for the child /* get the serializer to extract the serialized data for the child
* from the serialised data for the container * from the serialized data for the container
*/ */
s_child = g_variant_serialised_get_child (serialised, index_); s_child = g_variant_serialised_get_child (serialised, index_);
@ -1111,7 +1111,7 @@ g_variant_get_child_value (GVariant *value,
return g_variant_new_tuple (NULL, 0); return g_variant_new_tuple (NULL, 0);
} }
/* create a new serialised instance out of it */ /* create a new serialized instance out of it */
child = g_slice_new (GVariant); child = g_slice_new (GVariant);
child->type_info = s_child.type_info; child->type_info = s_child.type_info;
child->state = (value->state & STATE_TRUSTED) | child->state = (value->state & STATE_TRUSTED) |
@ -1130,17 +1130,17 @@ g_variant_get_child_value (GVariant *value,
/** /**
* g_variant_store: * g_variant_store:
* @value: the #GVariant to store * @value: the #GVariant to store
* @data: (not nullable): the location to store the serialised data at * @data: (not nullable): the location to store the serialized data at
* *
* Stores the serialised form of @value at @data. @data should be * Stores the serialized form of @value at @data. @data should be
* large enough. See g_variant_get_size(). * large enough. See g_variant_get_size().
* *
* The stored data is in machine native byte order but may not be in * The stored data is in machine native byte order but may not be in
* fully-normalised form if read from an untrusted source. See * fully-normalised form if read from an untrusted source. See
* g_variant_get_normal_form() for a solution. * g_variant_get_normal_form() for a solution.
* *
* As with g_variant_get_data(), to be able to deserialise the * As with g_variant_get_data(), to be able to deserialize the
* serialised variant successfully, its type and (if the destination * serialized variant successfully, its type and (if the destination
* machine might be different) its endianness must also be available. * machine might be different) its endianness must also be available.
* *
* This function is approximately O(n) in the size of @data. * This function is approximately O(n) in the size of @data.
@ -1173,7 +1173,7 @@ g_variant_store (GVariant *value,
* Checks if @value is in normal form. * Checks if @value is in normal form.
* *
* The main reason to do this is to detect if a given chunk of * The main reason to do this is to detect if a given chunk of
* serialised data is in normal form: load the data into a #GVariant * serialized data is in normal form: load the data into a #GVariant
* using g_variant_new_from_data() and then use this function to * using g_variant_new_from_data() and then use this function to
* check. * check.
* *

View File

@ -44,26 +44,26 @@
* container and implements 5 functions for dealing with it: * container and implements 5 functions for dealing with it:
* *
* n_children: * n_children:
* - determines (according to serialised data) how many child values * - determines (according to serialized data) how many child values
* are inside a particular container value. * are inside a particular container value.
* *
* get_child: * get_child:
* - gets the type of and the serialised data corresponding to a * - gets the type of and the serialized data corresponding to a
* given child value within the container value. * given child value within the container value.
* *
* needed_size: * needed_size:
* - determines how much space would be required to serialise a * - determines how much space would be required to serialize a
* container of this type, containing the given children so that * container of this type, containing the given children so that
* buffers can be preallocated before serialising. * buffers can be preallocated before serializing.
* *
* serialise: * serialise:
* - write the serialised data for a container of this type, * - write the serialized data for a container of this type,
* containing the given children, to a buffer. * containing the given children, to a buffer.
* *
* is_normal: * is_normal:
* - check the given data to ensure that it is in normal form. For a * - check the given data to ensure that it is in normal form. For a
* given set of child values, there is exactly one normal form for * given set of child values, there is exactly one normal form for
* the serialised data of a container. Other forms are possible * the serialized data of a container. Other forms are possible
* while maintaining the same children (for example, by inserting * while maintaining the same children (for example, by inserting
* something other than zero bytes as padding) but only one form is * something other than zero bytes as padding) but only one form is
* the normal form. * the normal form.
@ -72,7 +72,7 @@
* functions and logic to dispatch it to the handler for the appropriate * functions and logic to dispatch it to the handler for the appropriate
* container type code. * container type code.
* *
* The second part also contains a routine to byteswap serialised * The second part also contains a routine to byteswap serialized
* values. This code makes use of the n_children() and get_child() * values. This code makes use of the n_children() and get_child()
* functions above to do its work so no extra support is needed on a * functions above to do its work so no extra support is needed on a
* per-container-type basis. * per-container-type basis.
@ -90,17 +90,17 @@
/* < private > /* < private >
* GVariantSerialised: * GVariantSerialised:
* @type_info: the #GVariantTypeInfo of this value * @type_info: the #GVariantTypeInfo of this value
* @data: (nullable): the serialised data of this value, or %NULL * @data: (nullable): the serialized data of this value, or %NULL
* @size: the size of this value * @size: the size of this value
* *
* A structure representing a GVariant in serialised form. This * A structure representing a GVariant in serialized form. This
* structure is used with #GVariantSerialisedFiller functions and as the * structure is used with #GVariantSerialisedFiller functions and as the
* primary interface to the serialiser. See #GVariantSerialisedFiller * primary interface to the serializer. See #GVariantSerialisedFiller
* for a description of its use there. * for a description of its use there.
* *
* When used with the serialiser API functions, the following invariants * When used with the serializer API functions, the following invariants
* apply to all #GVariantTypeSerialised structures passed to and * apply to all #GVariantTypeSerialised structures passed to and
* returned from the serialiser. * returned from the serializer.
* *
* @type_info must be non-%NULL. * @type_info must be non-%NULL.
* *
@ -117,7 +117,7 @@
* combination should be as if @data were a pointer to an * combination should be as if @data were a pointer to an
* appropriately-sized zero-filled region. * appropriately-sized zero-filled region.
* *
* @depth has no restrictions; the depth of a top-level serialised #GVariant is * @depth has no restrictions; the depth of a top-level serialized #GVariant is
* zero, and it increases for each level of nested child. * zero, and it increases for each level of nested child.
*/ */
@ -185,9 +185,9 @@ g_variant_serialised_check (GVariantSerialised serialised)
* from a partially-complete #GVariantSerialised. * from a partially-complete #GVariantSerialised.
* *
* The @data parameter passed back to the function is one of the items * The @data parameter passed back to the function is one of the items
* that was passed to the serialiser in the @children array. It * that was passed to the serializer in the @children array. It
* represents a single child item of the container that is being * represents a single child item of the container that is being
* serialised. The information filled in to @serialised is the * serialized. The information filled in to @serialised is the
* information for this child. * information for this child.
* *
* If the @type_info field of @serialised is %NULL then the callback * If the @type_info field of @serialised is %NULL then the callback
@ -197,24 +197,24 @@ g_variant_serialised_check (GVariantSerialised serialised)
* of the child. * of the child.
* *
* If the @size field is zero then the callback must fill it in with the * If the @size field is zero then the callback must fill it in with the
* required amount of space to store the serialised form of the child. * required amount of space to store the serialized form of the child.
* If it is non-zero then the callback should assert that it is equal to * If it is non-zero then the callback should assert that it is equal to
* the needed size of the child. * the needed size of the child.
* *
* If @data is non-%NULL then it points to a space that is properly * If @data is non-%NULL then it points to a space that is properly
* aligned for and large enough to store the serialised data of the * aligned for and large enough to store the serialized data of the
* child. The callback must store the serialised form of the child at * child. The callback must store the serialized form of the child at
* @data. * @data.
* *
* If the child value is another container then the callback will likely * If the child value is another container then the callback will likely
* recurse back into the serialiser by calling * recurse back into the serializer by calling
* g_variant_serialiser_needed_size() to determine @size and * g_variant_serialiser_needed_size() to determine @size and
* g_variant_serialiser_serialise() to write to @data. * g_variant_serialiser_serialise() to write to @data.
*/ */
/* PART 1: Container types {{{1 /* PART 1: Container types {{{1
* *
* This section contains the serialiser implementation functions for * This section contains the serializer implementation functions for
* each container type. * each container type.
*/ */
@ -235,7 +235,7 @@ g_variant_serialised_check (GVariantSerialised serialised)
* size of the maybe value is zero corresponds to the "Nothing" case and * size of the maybe value is zero corresponds to the "Nothing" case and
* the case where the size of the maybe value is equal to the fixed size * the case where the size of the maybe value is equal to the fixed size
* of the element type corresponds to the "Just" case; in that case, the * of the element type corresponds to the "Just" case; in that case, the
* serialised data of the child value forms the entire serialised data * serialized data of the child value forms the entire serialized data
* of the maybe value. * of the maybe value.
* *
* In the event that a fixed-sized maybe value is presented with a size * In the event that a fixed-sized maybe value is presented with a size
@ -331,11 +331,11 @@ gvs_fixed_sized_maybe_is_normal (GVariantSerialised value)
* either 0 or strictly greater than 0. The case where the size of the * either 0 or strictly greater than 0. The case where the size of the
* maybe value is zero corresponds to the "Nothing" case and the case * maybe value is zero corresponds to the "Nothing" case and the case
* where the size of the maybe value is greater than zero corresponds to * where the size of the maybe value is greater than zero corresponds to
* the "Just" case; in that case, the serialised data of the child value * the "Just" case; in that case, the serialized data of the child value
* forms the first part of the serialised data of the maybe value and is * forms the first part of the serialized data of the maybe value and is
* followed by a single zero byte. This zero byte is always appended, * followed by a single zero byte. This zero byte is always appended,
* regardless of any zero bytes that may already be at the end of the * regardless of any zero bytes that may already be at the end of the
* serialised ata of the child value. * serialized ata of the child value.
*/ */
static gsize static gsize
@ -424,8 +424,8 @@ gvs_variable_sized_maybe_is_normal (GVariantSerialised value)
/* Fixed-sized Array {{{3 /* Fixed-sized Array {{{3
* *
* For fixed sized arrays, the serialised data is simply a concatenation * For fixed sized arrays, the serialized data is simply a concatenation
* of the serialised data of each element, in order. Since fixed-sized * of the serialized data of each element, in order. Since fixed-sized
* values always have a fixed size that is a multiple of their alignment * values always have a fixed size that is a multiple of their alignment
* requirement no extra padding is required. * requirement no extra padding is required.
* *
@ -535,35 +535,35 @@ gvs_fixed_sized_array_is_normal (GVariantSerialised value)
* record the end point of each element in the array. * record the end point of each element in the array.
* *
* GVariant works in terms of "offsets". An offset is a pointer to a * GVariant works in terms of "offsets". An offset is a pointer to a
* boundary between two bytes. In 4 bytes of serialised data, there * boundary between two bytes. In 4 bytes of serialized data, there
* would be 5 possible offsets: one at the start ('0'), one between each * would be 5 possible offsets: one at the start ('0'), one between each
* pair of adjacent bytes ('1', '2', '3') and one at the end ('4'). * pair of adjacent bytes ('1', '2', '3') and one at the end ('4').
* *
* The numeric value of an offset is an unsigned integer given relative * The numeric value of an offset is an unsigned integer given relative
* to the start of the serialised data of the array. Offsets are always * to the start of the serialized data of the array. Offsets are always
* stored in little endian byte order and are always only as big as they * stored in little endian byte order and are always only as big as they
* need to be. For example, in 255 bytes of serialised data, there are * need to be. For example, in 255 bytes of serialized data, there are
* 256 offsets. All possibilities can be stored in an 8 bit unsigned * 256 offsets. All possibilities can be stored in an 8 bit unsigned
* integer. In 256 bytes of serialised data, however, there are 257 * integer. In 256 bytes of serialized data, however, there are 257
* possible offsets so 16 bit integers must be used. The size of an * possible offsets so 16 bit integers must be used. The size of an
* offset is always a power of 2. * offset is always a power of 2.
* *
* The offsets are stored at the end of the serialised data of the * The offsets are stored at the end of the serialized data of the
* array. They are simply concatenated on without any particular * array. They are simply concatenated on without any particular
* alignment. The size of the offsets is included in the size of the * alignment. The size of the offsets is included in the size of the
* serialised data for purposes of determining the size of the offsets. * serialized data for purposes of determining the size of the offsets.
* This presents a possibly ambiguity; in certain cases, a particular * This presents a possibly ambiguity; in certain cases, a particular
* value of array could have two different serialised forms. * value of array could have two different serialized forms.
* *
* Imagine an array containing a single string of 253 bytes in length * Imagine an array containing a single string of 253 bytes in length
* (so, 254 bytes including the nul terminator). Now the offset must be * (so, 254 bytes including the nul terminator). Now the offset must be
* written. If an 8 bit offset is written, it will bring the size of * written. If an 8 bit offset is written, it will bring the size of
* the array's serialised data to 255 -- which means that the use of an * the array's serialized data to 255 -- which means that the use of an
* 8 bit offset was valid. If a 16 bit offset is used then the total * 8 bit offset was valid. If a 16 bit offset is used then the total
* size of the array will be 256 -- which means that the use of a 16 bit * size of the array will be 256 -- which means that the use of a 16 bit
* offset was valid. Although both of these will be accepted by the * offset was valid. Although both of these will be accepted by the
* deserialiser, only the smaller of the two is considered to be in * deserializer, only the smaller of the two is considered to be in
* normal form and that is the one that the serialiser must produce. * normal form and that is the one that the serializer must produce.
*/ */
/* bytes may be NULL if (size == 0). */ /* bytes may be NULL if (size == 0). */
@ -840,20 +840,20 @@ gvs_variable_sized_array_is_normal (GVariantSerialised value)
/* Tuples {{{2 /* Tuples {{{2
* *
* Since tuples can contain a mix of variable- and fixed-sized items, * Since tuples can contain a mix of variable- and fixed-sized items,
* they are, in terms of serialisation, a hybrid of variable-sized and * they are, in terms of serialization, a hybrid of variable-sized and
* fixed-sized arrays. * fixed-sized arrays.
* *
* Offsets are only stored for variable-sized items. Also, since the * Offsets are only stored for variable-sized items. Also, since the
* number of items in a tuple is known from its type, we are able to * number of items in a tuple is known from its type, we are able to
* know exactly how many offsets to expect in the serialised data (and * know exactly how many offsets to expect in the serialized data (and
* therefore how much space is taken up by the offset array). This * therefore how much space is taken up by the offset array). This
* means that we know where the end of the serialised data for the last * means that we know where the end of the serialized data for the last
* item is -- we can just subtract the size of the offset array from the * item is -- we can just subtract the size of the offset array from the
* total size of the tuple. For this reason, the last item in the tuple * total size of the tuple. For this reason, the last item in the tuple
* doesn't need an offset stored. * doesn't need an offset stored.
* *
* Tuple offsets are stored in reverse. This design choice allows * Tuple offsets are stored in reverse. This design choice allows
* iterator-based deserialisers to be more efficient. * iterator-based deserializers to be more efficient.
* *
* Most of the "heavy lifting" here is handled by the GVariantTypeInfo * Most of the "heavy lifting" here is handled by the GVariantTypeInfo
* for the tuple. See the notes in gvarianttypeinfo.h. * for the tuple. See the notes in gvarianttypeinfo.h.
@ -1158,7 +1158,7 @@ gvs_tuple_is_normal (GVariantSerialised value)
/* Variants {{{2 /* Variants {{{2
* *
* Variants are stored by storing the serialised data of the child, * Variants are stored by storing the serialized data of the child,
* followed by a '\0' character, followed by the type string of the * followed by a '\0' character, followed by the type string of the
* child. * child.
* *
@ -1287,9 +1287,9 @@ gvs_variant_is_normal (GVariantSerialised value)
/* PART 2: Serialiser API {{{1 /* PART 2: Serializer API {{{1
* *
* This is the implementation of the API of the serialiser as advertised * This is the implementation of the API of the serializer as advertised
* in gvariant-serialiser.h. * in gvariant-serialiser.h.
*/ */
@ -1338,9 +1338,9 @@ gvs_variant_is_normal (GVariantSerialised value)
} \ } \
} }
/* Serialiser entry points {{{2 /* Serializer entry points {{{2
* *
* These are the functions that are called in order for the serialiser * These are the functions that are called in order for the serializer
* to do its thing. * to do its thing.
*/ */
@ -1348,7 +1348,7 @@ gvs_variant_is_normal (GVariantSerialised value)
* g_variant_serialised_n_children: * g_variant_serialised_n_children:
* @serialised: a #GVariantSerialised * @serialised: a #GVariantSerialised
* *
* For serialised data that represents a container value (maybes, * For serialized data that represents a container value (maybes,
* tuples, arrays, variants), determine how many child items are inside * tuples, arrays, variants), determine how many child items are inside
* that container. * that container.
* *
@ -1372,7 +1372,7 @@ g_variant_serialised_n_children (GVariantSerialised serialised)
* @serialised: a #GVariantSerialised * @serialised: a #GVariantSerialised
* @index_: the index of the child to fetch * @index_: the index of the child to fetch
* *
* Extracts a child from a serialised data representing a container * Extracts a child from a serialized data representing a container
* value. * value.
* *
* It is an error to call this function with an index out of bounds. * It is an error to call this function with an index out of bounds.
@ -1421,19 +1421,19 @@ g_variant_serialised_get_child (GVariantSerialised serialised,
* @children: an array of child items * @children: an array of child items
* @n_children: the size of @children * @n_children: the size of @children
* *
* Writes data in serialised form. * Writes data in serialized form.
* *
* The type_info field of @serialised must be filled in to type info for * The type_info field of @serialised must be filled in to type info for
* the type that we are serialising. * the type that we are serializing.
* *
* The size field of @serialised must be filled in with the value * The size field of @serialised must be filled in with the value
* returned by a previous call to g_variant_serialiser_needed_size(). * returned by a previous call to g_variant_serialiser_needed_size().
* *
* The data field of @serialised must be a pointer to a properly-aligned * The data field of @serialised must be a pointer to a properly-aligned
* memory region large enough to serialise into (ie: at least as big as * memory region large enough to serialize into (ie: at least as big as
* the size field). * the size field).
* *
* This function is only resonsible for serialising the top-level * This function is only resonsible for serializing the top-level
* container. @gvs_filler is called on each child of the container in * container. @gvs_filler is called on each child of the container in
* order for all of the data of that child to be filled in. * order for all of the data of that child to be filled in.
*/ */
@ -1457,12 +1457,12 @@ g_variant_serialiser_serialise (GVariantSerialised serialised,
/* < private > /* < private >
* g_variant_serialiser_needed_size: * g_variant_serialiser_needed_size:
* @type_info: the type to serialise for * @type_info: the type to serialize for
* @gvs_filler: the filler function * @gvs_filler: the filler function
* @children: an array of child items * @children: an array of child items
* @n_children: the size of @children * @n_children: the size of @children
* *
* Determines how much memory would be needed to serialise this value. * Determines how much memory would be needed to serialize this value.
* *
* This function is only resonsible for performing calculations for the * This function is only resonsible for performing calculations for the
* top-level container. @gvs_filler is called on each child of the * top-level container. @gvs_filler is called on each child of the
@ -1489,7 +1489,7 @@ g_variant_serialiser_needed_size (GVariantTypeInfo *type_info,
* g_variant_serialised_byteswap: * g_variant_serialised_byteswap:
* @value: a #GVariantSerialised * @value: a #GVariantSerialised
* *
* Byte-swap serialised data. The result of this function is only * Byte-swap serialized data. The result of this function is only
* well-defined if the data is in normal form. * well-defined if the data is in normal form.
*/ */
void void
@ -1577,9 +1577,9 @@ g_variant_serialised_byteswap (GVariantSerialised serialised)
* @serialised: a #GVariantSerialised * @serialised: a #GVariantSerialised
* *
* Determines, recursively if @serialised is in normal form. There is * Determines, recursively if @serialised is in normal form. There is
* precisely one normal form of serialised data for each possible value. * precisely one normal form of serialized data for each possible value.
* *
* It is possible that multiple byte sequences form the serialised data * It is possible that multiple byte sequences form the serialized data
* for a given value if, for example, the padding bytes are filled in * for a given value if, for example, the padding bytes are filled in
* with something other than zeros, but only one form is the normal * with something other than zeros, but only one form is the normal
* form. * form.

View File

@ -31,14 +31,14 @@ typedef struct
gsize depth; /* same semantics as GVariant.depth */ gsize depth; /* same semantics as GVariant.depth */
} GVariantSerialised; } GVariantSerialised;
/* deserialisation */ /* deserialization */
GLIB_AVAILABLE_IN_ALL GLIB_AVAILABLE_IN_ALL
gsize g_variant_serialised_n_children (GVariantSerialised container); gsize g_variant_serialised_n_children (GVariantSerialised container);
GLIB_AVAILABLE_IN_ALL GLIB_AVAILABLE_IN_ALL
GVariantSerialised g_variant_serialised_get_child (GVariantSerialised container, GVariantSerialised g_variant_serialised_get_child (GVariantSerialised container,
gsize index); gsize index);
/* serialisation */ /* serialization */
typedef void (*GVariantSerialisedFiller) (GVariantSerialised *serialised, typedef void (*GVariantSerialisedFiller) (GVariantSerialised *serialised,
gpointer data); gpointer data);

View File

@ -84,19 +84,19 @@
* concurrently accessed in any way from any number of threads without * concurrently accessed in any way from any number of threads without
* problems. * problems.
* *
* #GVariant is heavily optimised for dealing with data in serialised * #GVariant is heavily optimised for dealing with data in serialized
* form. It works particularly well with data located in memory-mapped * form. It works particularly well with data located in memory-mapped
* files. It can perform nearly all deserialisation operations in a * files. It can perform nearly all deserialization operations in a
* small constant time, usually touching only a single memory page. * small constant time, usually touching only a single memory page.
* Serialised #GVariant data can also be sent over the network. * Serialized #GVariant data can also be sent over the network.
* *
* #GVariant is largely compatible with D-Bus. Almost all types of * #GVariant is largely compatible with D-Bus. Almost all types of
* #GVariant instances can be sent over D-Bus. See #GVariantType for * #GVariant instances can be sent over D-Bus. See #GVariantType for
* exceptions. (However, #GVariant's serialisation format is not the same * exceptions. (However, #GVariant's serialization format is not the same
* as the serialisation format of a D-Bus message body: use #GDBusMessage, * as the serialization format of a D-Bus message body: use #GDBusMessage,
* in the gio library, for those.) * in the gio library, for those.)
* *
* For space-efficiency, the #GVariant serialisation format does not * For space-efficiency, the #GVariant serialization format does not
* automatically include the variant's length, type or endianness, * automatically include the variant's length, type or endianness,
* which must either be implied from context (such as knowledge that a * which must either be implied from context (such as knowledge that a
* particular file format always contains a little-endian * particular file format always contains a little-endian
@ -126,14 +126,14 @@
* in the future. * in the future.
* *
* The memory allocated by #GVariant can be grouped into 4 broad * The memory allocated by #GVariant can be grouped into 4 broad
* purposes: memory for serialised data, memory for the type * purposes: memory for serialized data, memory for the type
* information cache, buffer management memory and memory for the * information cache, buffer management memory and memory for the
* #GVariant structure itself. * #GVariant structure itself.
* *
* ## Serialised Data Memory * ## Serialized Data Memory
* *
* This is the memory that is used for storing GVariant data in * This is the memory that is used for storing GVariant data in
* serialised form. This is what would be sent over the network or * serialized form. This is what would be sent over the network or
* what would end up on disk, not counting any indicator of the * what would end up on disk, not counting any indicator of the
* endianness, or of the length or type of the top-level variant. * endianness, or of the length or type of the top-level variant.
* *
@ -167,7 +167,7 @@
* *
* As an example, consider a dictionary mapping strings to variants. * As an example, consider a dictionary mapping strings to variants.
* In the case that the dictionary is empty, 0 bytes are required for * In the case that the dictionary is empty, 0 bytes are required for
* the serialisation. * the serialization.
* *
* If we add an item "width" that maps to the int32 value of 500 then * If we add an item "width" that maps to the int32 value of 500 then
* we will use 4 byte to store the int32 (so 6 for the variant * we will use 4 byte to store the int32 (so 6 for the variant
@ -193,7 +193,7 @@
* *
* For each GVariant type that currently exists in the program a type * For each GVariant type that currently exists in the program a type
* information structure is kept in the type information cache. The * information structure is kept in the type information cache. The
* type information structure is required for rapid deserialisation. * type information structure is required for rapid deserialization.
* *
* Continuing with the above example, if a #GVariant exists with the * Continuing with the above example, if a #GVariant exists with the
* type "a{sv}" then a type information struct will exist for * type "a{sv}" then a type information struct will exist for
@ -238,14 +238,14 @@
* ## Buffer Management Memory * ## Buffer Management Memory
* *
* #GVariant uses an internal buffer management structure to deal * #GVariant uses an internal buffer management structure to deal
* with the various different possible sources of serialised data * with the various different possible sources of serialized data
* that it uses. The buffer is responsible for ensuring that the * that it uses. The buffer is responsible for ensuring that the
* correct call is made when the data is no longer in use by * correct call is made when the data is no longer in use by
* #GVariant. This may involve a g_free() or a g_slice_free() or * #GVariant. This may involve a g_free() or a g_slice_free() or
* even g_mapped_file_unref(). * even g_mapped_file_unref().
* *
* One buffer management structure is used for each chunk of * One buffer management structure is used for each chunk of
* serialised data. The size of the buffer management structure * serialized data. The size of the buffer management structure
* is 4 * (void *). On 32-bit systems, that's 16 bytes. * is 4 * (void *). On 32-bit systems, that's 16 bytes.
* *
* ## GVariant structure * ## GVariant structure
@ -255,7 +255,7 @@
* *
* #GVariant structures only exist if they are explicitly created * #GVariant structures only exist if they are explicitly created
* with API calls. For example, if a #GVariant is constructed out of * with API calls. For example, if a #GVariant is constructed out of
* serialised data for the example given above (with the dictionary) * serialized data for the example given above (with the dictionary)
* then although there are 9 individual values that comprise the * then although there are 9 individual values that comprise the
* entire dictionary (two keys, two values, two variants containing * entire dictionary (two keys, two values, two variants containing
* the values, two dictionary entries, plus the dictionary itself), * the values, two dictionary entries, plus the dictionary itself),
@ -265,8 +265,8 @@
* If calls are made to start accessing the other values then * If calls are made to start accessing the other values then
* #GVariant instances will exist for those values only for as long * #GVariant instances will exist for those values only for as long
* as they are in use (ie: until you call g_variant_unref()). The * as they are in use (ie: until you call g_variant_unref()). The
* type information is shared. The serialised data and the buffer * type information is shared. The serialized data and the buffer
* management structure for that serialised data is shared by the * management structure for that serialized data is shared by the
* child. * child.
* *
* ## Summary * ## Summary
@ -274,12 +274,12 @@
* To put the entire example together, for our dictionary mapping * To put the entire example together, for our dictionary mapping
* strings to variants (with two entries, as given above), we are * strings to variants (with two entries, as given above), we are
* using 91 bytes of memory for type information, 29 bytes of memory * using 91 bytes of memory for type information, 29 bytes of memory
* for the serialised data, 16 bytes for buffer management and 24 * for the serialized data, 16 bytes for buffer management and 24
* bytes for the #GVariant instance, or a total of 160 bytes, plus * bytes for the #GVariant instance, or a total of 160 bytes, plus
* malloc overhead. If we were to use g_variant_get_child_value() to * malloc overhead. If we were to use g_variant_get_child_value() to
* access the two dictionary entries, we would use an additional 48 * access the two dictionary entries, we would use an additional 48
* bytes. If we were to have other dictionaries of the same type, we * bytes. If we were to have other dictionaries of the same type, we
* would use more memory for the serialised data and buffer * would use more memory for the serialized data and buffer
* management for those dictionaries, but the type information would * management for those dictionaries, but the type information would
* be shared. * be shared.
*/ */
@ -1095,7 +1095,7 @@ g_variant_lookup_value (GVariant *dictionary,
* @n_elements: (out): a pointer to the location to store the number of items * @n_elements: (out): a pointer to the location to store the number of items
* @element_size: the size of each element * @element_size: the size of each element
* *
* Provides access to the serialised data for an array of fixed-sized * Provides access to the serialized data for an array of fixed-sized
* items. * items.
* *
* @value must be an array with fixed-sized elements. Numeric types are * @value must be an array with fixed-sized elements. Numeric types are
@ -1103,7 +1103,7 @@ g_variant_lookup_value (GVariant *dictionary,
* *
* @element_size must be the size of a single element in the array, * @element_size must be the size of a single element in the array,
* as given by the section on * as given by the section on
* [serialized data memory][gvariant-serialised-data-memory]. * [serialized data memory][gvariant-serialized-data-memory].
* *
* In particular, arrays of these fixed-sized types can be interpreted * In particular, arrays of these fixed-sized types can be interpreted
* as an array of the given C type, with @element_size set to the size * as an array of the given C type, with @element_size set to the size
@ -1116,7 +1116,7 @@ g_variant_lookup_value (GVariant *dictionary,
* *
* For example, if calling this function for an array of 32-bit integers, * For example, if calling this function for an array of 32-bit integers,
* you might say `sizeof(gint32)`. This value isn't used except for the purpose * you might say `sizeof(gint32)`. This value isn't used except for the purpose
* of a double-check that the form of the serialised data matches the caller's * of a double-check that the form of the serialized data matches the caller's
* expectation. * expectation.
* *
* @n_elements, which must be non-%NULL, is set equal to the number of * @n_elements, which must be non-%NULL, is set equal to the number of
@ -1191,7 +1191,7 @@ g_variant_get_fixed_array (GVariant *value,
* @element_size must be the size of a single element in the array. * @element_size must be the size of a single element in the array.
* For example, if calling this function for an array of 32-bit integers, * For example, if calling this function for an array of 32-bit integers,
* you might say sizeof(gint32). This value isn't used except for the purpose * you might say sizeof(gint32). This value isn't used except for the purpose
* of a double-check that the form of the serialised data matches the caller's * of a double-check that the form of the serialized data matches the caller's
* expectation. * expectation.
* *
* @n_elements must be the length of the @elements array. * @n_elements must be the length of the @elements array.
@ -2745,8 +2745,8 @@ g_variant_equal (gconstpointer one,
g_variant_get_type_info ((GVariant *) two)) g_variant_get_type_info ((GVariant *) two))
return FALSE; return FALSE;
/* if both values are trusted to be in their canonical serialised form /* if both values are trusted to be in their canonical serialized form
* then a simple memcmp() of their serialised data will answer the * then a simple memcmp() of their serialized data will answer the
* question. * question.
* *
* if not, then this might generate a false negative (since it is * if not, then this might generate a false negative (since it is
@ -5793,7 +5793,7 @@ g_variant_iter_loop (GVariantIter *iter,
return value != NULL; return value != NULL;
} }
/* Serialised data {{{1 */ /* Serialized data {{{1 */
static GVariant * static GVariant *
g_variant_deep_copy (GVariant *value) g_variant_deep_copy (GVariant *value)
{ {
@ -5882,7 +5882,7 @@ g_variant_deep_copy (GVariant *value)
* #GVariant is created with the same value as @value. * #GVariant is created with the same value as @value.
* *
* It makes sense to call this function if you've received #GVariant * It makes sense to call this function if you've received #GVariant
* data from untrusted sources and you want to ensure your serialised * data from untrusted sources and you want to ensure your serialized
* output is definitely in normal form. * output is definitely in normal form.
* *
* If @value is already in normal form, a new reference will be returned * If @value is already in normal form, a new reference will be returned
@ -5972,13 +5972,13 @@ g_variant_byteswap (GVariant *value)
/** /**
* g_variant_new_from_data: * g_variant_new_from_data:
* @type: a definite #GVariantType * @type: a definite #GVariantType
* @data: (array length=size) (element-type guint8): the serialised data * @data: (array length=size) (element-type guint8): the serialized data
* @size: the size of @data * @size: the size of @data
* @trusted: %TRUE if @data is definitely in normal form * @trusted: %TRUE if @data is definitely in normal form
* @notify: (scope async): function to call when @data is no longer needed * @notify: (scope async): function to call when @data is no longer needed
* @user_data: data for @notify * @user_data: data for @notify
* *
* Creates a new #GVariant instance from serialised data. * Creates a new #GVariant instance from serialized data.
* *
* @type is the type of #GVariant instance that will be constructed. * @type is the type of #GVariant instance that will be constructed.
* The interpretation of @data depends on knowing the type. * The interpretation of @data depends on knowing the type.
@ -5988,8 +5988,8 @@ g_variant_byteswap (GVariant *value)
* @user_data. If the contents of @data change before that time then * @user_data. If the contents of @data change before that time then
* the result is undefined. * the result is undefined.
* *
* If @data is trusted to be serialised data in normal form then * If @data is trusted to be serialized data in normal form then
* @trusted should be %TRUE. This applies to serialised data created * @trusted should be %TRUE. This applies to serialized data created
* within this process or read from a trusted location on the disk (such * within this process or read from a trusted location on the disk (such
* as a file installed in /usr/lib alongside your application). You * as a file installed in /usr/lib alongside your application). You
* should set trusted to %FALSE if @data is read from the network, a * should set trusted to %FALSE if @data is read from the network, a

View File

@ -32,7 +32,7 @@
* GVariantTypeInfo: * GVariantTypeInfo:
* *
* This structure contains the necessary information to facilitate the * This structure contains the necessary information to facilitate the
* serialisation and fast deserialisation of a given type of GVariant * serialization and fast deserialization of a given type of GVariant
* value. A GVariant instance holds a pointer to one of these * value. A GVariant instance holds a pointer to one of these
* structures to provide for efficient operation. * structures to provide for efficient operation.
* *
@ -93,7 +93,7 @@ typedef struct
} ArrayInfo; } ArrayInfo;
/* For 'tuple' and 'dict entry' types, we store extra information for /* For 'tuple' and 'dict entry' types, we store extra information for
* each member -- its type and how to find it inside the serialised data * each member -- its type and how to find it inside the serialized data
* in O(1) time using 4 variables -- 'i', 'a', 'b', and 'c'. See the * in O(1) time using 4 variables -- 'i', 'a', 'b', and 'c'. See the
* comment on GVariantMemberInfo in gvarianttypeinfo.h. * comment on GVariantMemberInfo in gvarianttypeinfo.h.
*/ */

View File

@ -40,18 +40,18 @@ typedef struct _GVariantTypeInfo GVariantTypeInfo;
* corresponding to a given child of a tuple or dictionary entry in a * corresponding to a given child of a tuple or dictionary entry in a
* very short constant time. It contains the typeinfo of the child, * very short constant time. It contains the typeinfo of the child,
* along with 4 constants that allow the bounds of the child's * along with 4 constants that allow the bounds of the child's
* serialised data within the container's serialised data to be found * serialized data within the container's serialized data to be found
* very efficiently. * very efficiently.
* *
* Since dictionary entries are serialised as if they were tuples of 2 * Since dictionary entries are serialized as if they were tuples of 2
* items, the term "tuple" will be used here in the general sense to * items, the term "tuple" will be used here in the general sense to
* refer to tuples and dictionary entries. * refer to tuples and dictionary entries.
* *
* BACKGROUND: * BACKGROUND:
* The serialised data for a tuple contains an array of "offsets" at * The serialized data for a tuple contains an array of "offsets" at
* the end. There is one "offset" in this array for each * the end. There is one "offset" in this array for each
* variable-sized item in the tuple (except for the last one). The * variable-sized item in the tuple (except for the last one). The
* offset points to the end point of that item's serialised data. The * offset points to the end point of that item's serialized data. The
* procedure for finding the start point is described below. An * procedure for finding the start point is described below. An
* offset is not needed for the last item because the end point of the * offset is not needed for the last item because the end point of the
* last item is merely the end point of the container itself (after * last item is merely the end point of the container itself (after

View File

@ -997,7 +997,7 @@ check_offsets (GVariantTypeInfo *info,
position++; position++;
/* and store the offset, just like it would be in the /* and store the offset, just like it would be in the
* serialised data. * serialized data.
*/ */
last_offset = position; last_offset = position;
last_offset_index++; last_offset_index++;
@ -1093,7 +1093,7 @@ test_gvarianttypeinfo (void)
#define MAX_TUPLE_CHILDREN 128 #define MAX_TUPLE_CHILDREN 128
/* this function generates a random type such that all characteristics /* this function generates a random type such that all characteristics
* that are "interesting" to the serialiser are tested. * that are "interesting" to the serializer are tested.
* *
* this basically means: * this basically means:
* - test different alignments * - test different alignments
@ -2311,19 +2311,19 @@ test_serialiser_children (void)
g_test_summary ("Test that getting a child variant before and after " g_test_summary ("Test that getting a child variant before and after "
"serialisation of the parent works"); "serialisation of the parent works");
/* Construct a variable sized array containing a child which serialises to a /* Construct a variable sized array containing a child which serializes to a
* zero-length bytestring. */ * zero-length bytestring. */
child = g_variant_new_maybe (G_VARIANT_TYPE_VARIANT, NULL); child = g_variant_new_maybe (G_VARIANT_TYPE_VARIANT, NULL);
variant = g_variant_new_array (mv_type, &child, 1); variant = g_variant_new_array (mv_type, &child, 1);
/* Get the child before serialising. */ /* Get the child before serializing. */
child1 = g_variant_get_child_value (variant, 0); child1 = g_variant_get_child_value (variant, 0);
data1 = g_variant_get_data_as_bytes (child1); data1 = g_variant_get_data_as_bytes (child1);
/* Serialise the parent variant. */ /* Serialize the parent variant. */
g_variant_get_data (variant); g_variant_get_data (variant);
/* Get the child again after serialising — this uses a different code path. */ /* Get the child again after serializing — this uses a different code path. */
child2 = g_variant_get_child_value (variant, 0); child2 = g_variant_get_child_value (variant, 0);
data2 = g_variant_get_data_as_bytes (child2); data2 = g_variant_get_data_as_bytes (child2);
@ -2348,7 +2348,7 @@ test_fuzz (gdouble *fuzziness)
/* make an instance */ /* make an instance */
tree = tree_instance_new (NULL, 3); tree = tree_instance_new (NULL, 3);
/* serialise it */ /* serialize it */
serialise_tree (tree, &serialised); serialise_tree (tree, &serialised);
g_assert_true (g_variant_serialised_is_normal (serialised)); g_assert_true (g_variant_serialised_is_normal (serialised));
@ -2371,17 +2371,17 @@ test_fuzz (gdouble *fuzziness)
} }
} }
/* at least one byte in the serialised data has changed. /* at least one byte in the serialized data has changed.
* *
* this means that at least one of the following is true: * this means that at least one of the following is true:
* *
* - the serialised data now represents a different value: * - the serialized data now represents a different value:
* check_tree() will return FALSE * check_tree() will return FALSE
* *
* - the serialised data is in non-normal form: * - the serialized data is in non-normal form:
* g_variant_serialiser_is_normal() will return FALSE * g_variant_serialiser_is_normal() will return FALSE
* *
* we always do both checks to increase exposure of the serialiser * we always do both checks to increase exposure of the serializer
* to corrupt data. * to corrupt data.
*/ */
a = g_variant_serialised_is_normal (serialised); a = g_variant_serialised_is_normal (serialised);
@ -3743,9 +3743,9 @@ test_gv_byteswap (void)
# define swapped16(x) x, 0 # define swapped16(x) x, 0
#endif #endif
/* all kinds of of crazy randomised testing already performed on the /* all kinds of of crazy randomised testing already performed on the
* byteswapper in the /gvariant/serialiser/byteswap test and all kinds * byteswapper in the /gvariant/serializer/byteswap test and all kinds
* of crazy randomised testing performed against the serialiser * of crazy randomised testing performed against the serializer
* normalisation functions in the /gvariant/serialiser/fuzz/ tests. * normalisation functions in the /gvariant/serializer/fuzz/ tests.
* *
* just test a few simple cases here to make sure they each work * just test a few simple cases here to make sure they each work
*/ */
@ -4755,7 +4755,7 @@ test_gbytes (void)
g_bytes_unref (bytes2); g_bytes_unref (bytes2);
tuple = g_variant_new_parsed ("['foo', 'bar']"); tuple = g_variant_new_parsed ("['foo', 'bar']");
bytes = g_variant_get_data_as_bytes (tuple); /* force serialisation */ bytes = g_variant_get_data_as_bytes (tuple); /* force serialization */
a = g_variant_get_child_value (tuple, 1); a = g_variant_get_child_value (tuple, 1);
bytes2 = g_variant_get_data_as_bytes (a); bytes2 = g_variant_get_data_as_bytes (a);
g_assert_false (g_bytes_equal (bytes, bytes2)); g_assert_false (g_bytes_equal (bytes, bytes2));
@ -4898,7 +4898,7 @@ test_normal_checking_tuples (void)
} }
/* Check that deeply nested variants are not considered in normal form when /* Check that deeply nested variants are not considered in normal form when
* deserialised from untrusted data.*/ * deserialized from untrusted data.*/
static void static void
test_recursion_limits_variant_in_variant (void) test_recursion_limits_variant_in_variant (void)
{ {
@ -4914,7 +4914,7 @@ test_recursion_limits_variant_in_variant (void)
for (i = 0; i < G_VARIANT_MAX_RECURSION_DEPTH - 1; i++) for (i = 0; i < G_VARIANT_MAX_RECURSION_DEPTH - 1; i++)
wrapper_variant = g_variant_new_variant (g_steal_pointer (&wrapper_variant)); wrapper_variant = g_variant_new_variant (g_steal_pointer (&wrapper_variant));
/* Serialise and deserialise it as untrusted data, to force normalisation. */ /* Serialize and deserialize it as untrusted data, to force normalisation. */
bytes = g_variant_get_data_as_bytes (wrapper_variant); bytes = g_variant_get_data_as_bytes (wrapper_variant);
deserialised_variant = g_variant_new_from_bytes (G_VARIANT_TYPE_VARIANT, deserialised_variant = g_variant_new_from_bytes (G_VARIANT_TYPE_VARIANT,
bytes, FALSE); bytes, FALSE);
@ -4935,7 +4935,7 @@ test_recursion_limits_variant_in_variant (void)
g_variant_unref (deserialised_variant); g_variant_unref (deserialised_variant);
/* Deserialise it again, but trusted this time. This should succeed. */ /* Deserialize it again, but trusted this time. This should succeed. */
deserialised_variant = g_variant_new_from_bytes (G_VARIANT_TYPE_VARIANT, deserialised_variant = g_variant_new_from_bytes (G_VARIANT_TYPE_VARIANT,
bytes, TRUE); bytes, TRUE);
g_assert_nonnull (deserialised_variant); g_assert_nonnull (deserialised_variant);
@ -4947,7 +4947,7 @@ test_recursion_limits_variant_in_variant (void)
} }
/* Check that deeply nested arrays are not considered in normal form when /* Check that deeply nested arrays are not considered in normal form when
* deserialised from untrusted data after being wrapped in a variant. This is * deserialized from untrusted data after being wrapped in a variant. This is
* worth testing, because neither the deeply nested array, nor the variant, * worth testing, because neither the deeply nested array, nor the variant,
* have a static #GVariantType which is too deep only when nested together do * have a static #GVariantType which is too deep only when nested together do
* they become too deep. */ * they become too deep. */
@ -4967,7 +4967,7 @@ test_recursion_limits_array_in_variant (void)
for (i = 0; i < G_VARIANT_MAX_RECURSION_DEPTH - 1; i++) for (i = 0; i < G_VARIANT_MAX_RECURSION_DEPTH - 1; i++)
child_variant = g_variant_new_array (NULL, &child_variant, 1); child_variant = g_variant_new_array (NULL, &child_variant, 1);
/* Serialise and deserialise it as untrusted data, to force normalisation. */ /* Serialize and deserialize it as untrusted data, to force normalisation. */
bytes = g_variant_get_data_as_bytes (child_variant); bytes = g_variant_get_data_as_bytes (child_variant);
deserialised_variant = g_variant_new_from_bytes (g_variant_get_type (child_variant), deserialised_variant = g_variant_new_from_bytes (g_variant_get_type (child_variant),
bytes, FALSE); bytes, FALSE);
@ -4988,7 +4988,7 @@ test_recursion_limits_array_in_variant (void)
g_variant_unref (deserialised_variant); g_variant_unref (deserialised_variant);
/* Deserialise it again, but trusted this time. This should succeed. */ /* Deserialize it again, but trusted this time. This should succeed. */
deserialised_variant = g_variant_new_from_bytes (G_VARIANT_TYPE_VARIANT, deserialised_variant = g_variant_new_from_bytes (G_VARIANT_TYPE_VARIANT,
bytes, TRUE); bytes, TRUE);
g_assert_nonnull (deserialised_variant); g_assert_nonnull (deserialised_variant);