In contrast with g_list_copy(), this function uses @func to make
a copy of each list element, in addition to copying the list
container itself.
@func, as a #GCopyFunc, takes two arguments, the data to be copied
and a @user_data pointer. On common processor architectures, it's safe to
pass %NULL as @user_data if the copy function takes only one argument. You
may get compiler warnings from this though if compiling with GCC’s
-Wcast-function-type warning.
For instance, if @list holds a list of GObjects, you can do:
|[<!-- language="C" -->
another_list = g_list_copy_deep (list, (GCopyFunc) g_object_ref, NULL);
]|
And, to entirely free the new list, you could do:
|[<!-- language="C" -->
g_list_free_full (another_list, g_object_unref);
]|
Makes a full (deep) copy of a #GList.
In contrast with g_list_copy(), this function uses @func to make a copy of each list element, in addition to copying the list container itself.
@func, as a #GCopyFunc, takes two arguments, the data to be copied and a @user_data pointer. On common processor architectures, it's safe to pass %NULL as @user_data if the copy function takes only one argument. You may get compiler warnings from this though if compiling with GCC’s -Wcast-function-type warning.
For instance, if @list holds a list of GObjects, you can do: |[<!-- language="C" --> another_list = g_list_copy_deep (list, (GCopyFunc) g_object_ref, NULL); ]|
And, to entirely free the new list, you could do: |[<!-- language="C" --> g_list_free_full (another_list, g_object_unref); ]|