Function
GObjectTypeValueLCopyFunc
since: 2.78
Declaration
gchar*
(* GTypeValueLCopyFunc) (
  const GValue* value,
  guint n_collect_values,
  GTypeCValue* collect_values,
  guint collect_flags
)
Description [src]
This function is responsible for storing the value
contents into arguments passed through a variadic argument list which
got collected into collect_values according to lcopy_format.
The n_collect_values argument equals the string length of
lcopy_format, and collect_flags may contain G_VALUE_NOCOPY_CONTENTS.
In contrast to GTypeValueCollectFunc, this function is obliged to always
properly support G_VALUE_NOCOPY_CONTENTS.
Similar to GTypeValueCollectFunc the function may prematurely abort by
returning a newly allocated string describing an error condition. To
complete the string example:
gchar **string_p = collect_values[0].v_pointer;
g_return_val_if_fail (string_p != NULL,
  g_strdup ("string location passed as NULL"));
if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
  *string_p = value->data[0].v_pointer;
else
  *string_p = g_strdup (value->data[0].v_pointer);
And an illustrative version of this function for reference-counted types:
GObject **object_p = collect_values[0].v_pointer;
g_return_val_if_fail (object_p != NULL,
  g_strdup ("object location passed as NULL"));
if (value->data[0].v_pointer == NULL)
  *object_p = NULL;
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) // always honour
  *object_p = value->data[0].v_pointer;
else
  *object_p = g_object_ref (value->data[0].v_pointer);
return NULL;
Available since: 2.78
Parameters
- value
- 
            Type: GValueThe value to lcopy. The data is owned by the caller of the function. 
- n_collect_values
- 
            Type: guintThe number of collected values. 
- collect_values
- 
            Type: An array of GTypeCValueThe collected locations for storage. The length of the array is specified in the n_collect_valuesargument.The data is owned by the caller of the function. 
- collect_flags
- 
            Type: guintOptional flags.