mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-23 12:41:50 +01:00
gvariant: Never break out of g_variant_iter_loop
* Document how to break out of g_variant_iter_loop style loops. https://bugzilla.gnome.org/show_bug.cgi?id=664069
This commit is contained in:
parent
34e3881f2f
commit
411259ddd3
@ -4872,6 +4872,10 @@ g_variant_iter_next (GVariantIter *iter,
|
||||
* function and g_variant_iter_next() or g_variant_iter_next_value() on
|
||||
* the same iterator causes undefined behavior.
|
||||
*
|
||||
* If you break out of a such a while loop using g_variant_iter_loop() then
|
||||
* you must free or unreference all the unpacked values as you would with
|
||||
* g_variant_get(). Failure to do so will cause a memory leak.
|
||||
*
|
||||
* See the section on <link linkend='gvariant-format-strings'>GVariant
|
||||
* Format Strings</link>.
|
||||
*
|
||||
@ -4893,6 +4897,7 @@ g_variant_iter_next (GVariantIter *iter,
|
||||
* g_variant_get_type_string (value));
|
||||
*
|
||||
* /<!-- -->* no need to free 'key' and 'value' here *<!-- -->/
|
||||
* /<!-- -->* unless breaking out of this loop *<!-- -->/
|
||||
* }
|
||||
* }
|
||||
* </programlisting>
|
||||
|
Loading…
Reference in New Issue
Block a user