~ubuntu-branches/ubuntu/utopic/glib2.0/utopic

« back to all changes in this revision

Viewing changes to docs/reference/glib/html/glib-GVariant.html

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2014-10-02 13:08:24 UTC
  • mfrom: (1.67.13)
  • mto: This revision was merged to the branch mainline in revision 233.
  • Revision ID: package-import@ubuntu.com-20141002130824-cqp99rbif2g6wf6r
Tags: upstream-2.42.0
ImportĀ upstreamĀ versionĀ 2.42.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1055
1055
<p><a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> is largely compatible with D-Bus.  Almost all types of
1056
1056
<a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instances can be sent over D-Bus.  See <a class="link" href="glib-GVariantType.html#GVariantType" title="GVariantType"><span class="type">GVariantType</span></a> for
1057
1057
exceptions.  (However, <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a>'s serialisation format is not the same
1058
 
as the serialisation format of a D-Bus message body: use <a href="http://library.gnome.org/devel/gio/unstable/GDBusMessage.html"><span class="type">GDBusMessage</span></a>,
 
1058
as the serialisation format of a D-Bus message body: use <a href="../gio/GDBusMessage.html"><span class="type">GDBusMessage</span></a>,
1059
1059
in the gio library, for those.)</p>
1060
1060
<p>For space-efficiency, the <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> serialisation format does not
1061
 
automatically include the variant's type or endianness, which must
1062
 
either be implied from context (such as knowledge that a particular
1063
 
file format always contains a little-endian <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-VARIANT:CAPS" title="G_VARIANT_TYPE_VARIANT"><code class="literal">G_VARIANT_TYPE_VARIANT</code></a>)
1064
 
or supplied out-of-band (for instance, a type and/or endianness
 
1061
automatically include the variant's length, type or endianness,
 
1062
which must either be implied from context (such as knowledge that a
 
1063
particular file format always contains a little-endian
 
1064
<a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-VARIANT:CAPS" title="G_VARIANT_TYPE_VARIANT"><code class="literal">G_VARIANT_TYPE_VARIANT</code></a> which occupies the whole length of the file)
 
1065
or supplied out-of-band (for instance, a length, type and/or endianness
1065
1066
indicator could be placed at the beginning of a file, network message
1066
1067
or network stream).</p>
1067
1068
<p>A <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a>'s size is limited mainly by any lower level operating
1089
1090
<a name="id-1.6.19.6.13"></a><h4>Serialised Data Memory</h4>
1090
1091
<p>This is the memory that is used for storing GVariant data in
1091
1092
serialised form.  This is what would be sent over the network or
1092
 
what would end up on disk.</p>
 
1093
what would end up on disk, not counting any indicator of the
 
1094
endianness, or of the length or type of the top-level variant.</p>
1093
1095
<p>The amount of memory required to store a boolean is 1 byte. 16,
1094
1096
32 and 64 bit integers and double precision floating point numbers
1095
1097
use their "natural" size.  Strings (including object path and
1656
1658
check fails then a <a class="link" href="glib-Message-Logging.html#g-critical" title="g_critical()"><code class="function">g_critical()</code></a> is printed and <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> is returned.</p>
1657
1659
<p>This function is meant to be used by functions that wish to provide
1658
1660
varargs accessors to <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> values of uncertain values (eg:
1659
 
<a class="link" href="glib-GVariant.html#g-variant-lookup" title="g_variant_lookupĀ ()"><code class="function">g_variant_lookup()</code></a> or <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html#g-menu-model-get-item-attribute"><code class="function">g_menu_model_get_item_attribute()</code></a>).</p>
 
1661
<a class="link" href="glib-GVariant.html#g-variant-lookup" title="g_variant_lookupĀ ()"><code class="function">g_variant_lookup()</code></a> or <a href="../gio/GMenuModel.html#g-menu-model-get-item-attribute"><code class="function">g_menu_model_get_item_attribute()</code></a>).</p>
1660
1662
<div class="refsect3">
1661
1663
<a name="id-1.6.19.7.13.7"></a><h4>Parameters</h4>
1662
1664
<div class="informaltable"><table width="100%" border="0">
1847
1849
6
1848
1850
7
1849
1851
8</pre></td>
1850
 
        <td class="listing_code"><pre class="programlisting"><span class="usertype">MyFlags</span><span class="normal"> some_flags </span><span class="symbol">=</span><span class="normal"> FLAG_ONE </span><span class="symbol">|</span><span class="normal"> FLAG_TWO</span><span class="symbol">;</span>
1851
 
<span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">some_strings</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"a"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"b"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"c"</span><span class="symbol">,</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">;</span>
1852
 
<span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">new_variant</span><span class="symbol">;</span>
 
1852
        <td class="listing_code"><pre class="programlisting">MyFlags some_flags <span class="gtkdoc opt">=</span> FLAG_ONE <span class="gtkdoc opt">|</span> FLAG_TWO<span class="gtkdoc opt">;</span>
 
1853
<span class="gtkdoc kwb">const</span> gchar <span class="gtkdoc opt">*</span>some_strings<span class="gtkdoc opt">[] = {</span> <span class="string">&quot;a&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;b&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;c&quot;</span><span class="gtkdoc opt">,</span> NULL <span class="gtkdoc opt">};</span>
 
1854
GVariant <span class="gtkdoc opt">*</span>new_variant<span class="gtkdoc opt">;</span>
1853
1855
 
1854
 
<span class="normal">new_variant </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-new">g_variant_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"(t^as)"</span><span class="symbol">,</span>
1855
 
<span class="normal">                             </span><span class="symbol">/&lt;!--</span><span class="normal"> </span><span class="symbol">--&gt;*</span><span class="normal"> This cast </span><span class="usertype">is</span><span class="normal"> required</span><span class="symbol">.</span><span class="normal"> </span><span class="symbol">*&lt;!--</span><span class="normal"> </span><span class="symbol">--&gt;/</span>
1856
 
<span class="normal">                             </span><span class="symbol">(</span><span class="normal"><a href="glib-Basic-Types.html#guint64">guint64</a></span><span class="symbol">)</span><span class="normal"> some_flags</span><span class="symbol">,</span>
1857
 
<span class="normal">                             some_strings</span><span class="symbol">);</span></pre></td>
 
1856
new_variant <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-GVariant.html#g-variant-new">g_variant_new</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;(t^as)&quot;</span><span class="gtkdoc opt">,</span>
 
1857
                             <span class="gtkdoc opt">/&lt;!-- --&gt;*</span> This cast is required<span class="gtkdoc opt">. *&lt;!-- --&gt;/</span>
 
1858
                             <span class="gtkdoc opt">(</span>guint64<span class="gtkdoc opt">)</span> some_flags<span class="gtkdoc opt">,</span>
 
1859
                             some_strings<span class="gtkdoc opt">);</span></pre></td>
1858
1860
      </tr>
1859
1861
    </tbody>
1860
1862
  </table>
4911
4913
16
4912
4914
17
4913
4915
18</pre></td>
4914
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">// recursively iterate a container</span>
4915
 
<span class="type">void</span>
4916
 
<span class="function">iterate_container_recursive</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">container</span><span class="symbol">)</span>
4917
 
<span class="cbracket">{</span>
4918
 
<span class="normal">  </span><span class="usertype">GVariantIter</span><span class="normal"> iter</span><span class="symbol">;</span>
4919
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">child</span><span class="symbol">;</span>
4920
 
 
4921
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> container</span><span class="symbol">);</span>
4922
 
<span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">((</span><span class="normal">child </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-next-value">g_variant_iter_next_value</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">)))</span>
4923
 
<span class="normal">    </span><span class="cbracket">{</span>
4924
 
<span class="normal">      </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"type '%s'</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">));</span>
4925
 
 
4926
 
<span class="normal">      </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-is-container">g_variant_is_container</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">))</span>
4927
 
<span class="normal">        </span><span class="function">iterate_container_recursive</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">);</span>
4928
 
 
4929
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-unref">g_variant_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">);</span>
4930
 
<span class="normal">    </span><span class="cbracket">}</span>
4931
 
<span class="cbracket">}</span></pre></td>
 
4916
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc slc">// recursively iterate a container</span>
 
4917
<span class="gtkdoc kwb">void</span>
 
4918
<span class="function">iterate_container_recursive</span> <span class="gtkdoc opt">(</span>GVariant <span class="gtkdoc opt">*</span>container<span class="gtkdoc opt">)</span>
 
4919
<span class="gtkdoc opt">{</span>
 
4920
  GVariantIter iter<span class="gtkdoc opt">;</span>
 
4921
  GVariant <span class="gtkdoc opt">*</span>child<span class="gtkdoc opt">;</span>
 
4922
 
 
4923
  <span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> container<span class="gtkdoc opt">);</span>
 
4924
  <span class="keyword">while</span> <span class="gtkdoc opt">((</span>child <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-GVariant.html#g-variant-iter-next-value">g_variant_iter_next_value</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">)))</span>
 
4925
    <span class="gtkdoc opt">{</span>
 
4926
      <span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;type '%s'</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">));</span>
 
4927
 
 
4928
      <span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="glib-GVariant.html#g-variant-is-container">g_variant_is_container</a></span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">))</span>
 
4929
        <span class="function">iterate_container_recursive</span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
 
4930
 
 
4931
      <span class="function"><a href="glib-GVariant.html#g-variant-unref">g_variant_unref</a></span> <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
 
4932
    <span class="gtkdoc opt">}</span>
 
4933
<span class="gtkdoc opt">}</span></pre></td>
4932
4934
      </tr>
4933
4935
    </tbody>
4934
4936
  </table>
4996
4998
17
4997
4999
18
4998
5000
19</pre></td>
4999
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">// Iterates a dictionary of type 'a{sv}'</span>
5000
 
<span class="type">void</span>
5001
 
<span class="function">iterate_dictionary</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dictionary</span><span class="symbol">)</span>
5002
 
<span class="cbracket">{</span>
5003
 
<span class="normal">  </span><span class="usertype">GVariantIter</span><span class="normal"> iter</span><span class="symbol">;</span>
5004
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>
5005
 
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key</span><span class="symbol">;</span>
5006
 
 
5007
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> dictionary</span><span class="symbol">);</span>
5008
 
<span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-iter-next">g_variant_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{sv}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">key</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">value</span><span class="symbol">))</span>
5009
 
<span class="normal">    </span><span class="cbracket">{</span>
5010
 
<span class="normal">      </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Item '%s' has type '%s'</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">,</span>
5011
 
<span class="normal">               </span><span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">));</span>
5012
 
 
5013
 
<span class="normal">      </span><span class="comment">// must free data for ourselves</span>
5014
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-unref">g_variant_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">);</span>
5015
 
<span class="normal">      </span><span class="function"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">key</span><span class="symbol">);</span>
5016
 
<span class="normal">    </span><span class="cbracket">}</span>
5017
 
<span class="cbracket">}</span></pre></td>
 
5001
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc slc">// Iterates a dictionary of type 'a{sv}'</span>
 
5002
<span class="gtkdoc kwb">void</span>
 
5003
<span class="function">iterate_dictionary</span> <span class="gtkdoc opt">(</span>GVariant <span class="gtkdoc opt">*</span>dictionary<span class="gtkdoc opt">)</span>
 
5004
<span class="gtkdoc opt">{</span>
 
5005
  GVariantIter iter<span class="gtkdoc opt">;</span>
 
5006
  GVariant <span class="gtkdoc opt">*</span>value<span class="gtkdoc opt">;</span>
 
5007
  gchar <span class="gtkdoc opt">*</span>key<span class="gtkdoc opt">;</span>
 
5008
 
 
5009
  <span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> dictionary<span class="gtkdoc opt">);</span>
 
5010
  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="glib-GVariant.html#g-variant-iter-next">g_variant_iter_next</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> <span class="string">&quot;{sv}&quot;</span><span class="gtkdoc opt">, &amp;</span>key<span class="gtkdoc opt">, &amp;</span>value<span class="gtkdoc opt">))</span>
 
5011
    <span class="gtkdoc opt">{</span>
 
5012
      <span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Item '%s' has type '%s'</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> key<span class="gtkdoc opt">,</span>
 
5013
               <span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">));</span>
 
5014
 
 
5015
      <span class="gtkdoc slc">// must free data for ourselves</span>
 
5016
      <span class="function"><a href="glib-GVariant.html#g-variant-unref">g_variant_unref</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">);</span>
 
5017
      <span class="function"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span> <span class="gtkdoc opt">(</span>key<span class="gtkdoc opt">);</span>
 
5018
    <span class="gtkdoc opt">}</span>
 
5019
<span class="gtkdoc opt">}</span></pre></td>
5018
5020
      </tr>
5019
5021
    </tbody>
5020
5022
  </table>
5112
5114
16
5113
5115
17
5114
5116
18</pre></td>
5115
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">// Iterates a dictionary of type 'a{sv}'</span>
5116
 
<span class="type">void</span>
5117
 
<span class="function">iterate_dictionary</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dictionary</span><span class="symbol">)</span>
5118
 
<span class="cbracket">{</span>
5119
 
<span class="normal">  </span><span class="usertype">GVariantIter</span><span class="normal"> iter</span><span class="symbol">;</span>
5120
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>
5121
 
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key</span><span class="symbol">;</span>
5122
 
 
5123
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> dictionary</span><span class="symbol">);</span>
5124
 
<span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-iter-loop">g_variant_iter_loop</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{sv}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">key</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">value</span><span class="symbol">))</span>
5125
 
<span class="normal">    </span><span class="cbracket">{</span>
5126
 
<span class="normal">      </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Item '%s' has type '%s'</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">,</span>
5127
 
<span class="normal">               </span><span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">));</span>
5128
 
 
5129
 
<span class="normal">      </span><span class="comment">// no need to free 'key' and 'value' here</span>
5130
 
<span class="normal">      </span><span class="comment">// unless breaking out of this loop</span>
5131
 
<span class="normal">    </span><span class="cbracket">}</span>
5132
 
<span class="cbracket">}</span></pre></td>
 
5117
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc slc">// Iterates a dictionary of type 'a{sv}'</span>
 
5118
<span class="gtkdoc kwb">void</span>
 
5119
<span class="function">iterate_dictionary</span> <span class="gtkdoc opt">(</span>GVariant <span class="gtkdoc opt">*</span>dictionary<span class="gtkdoc opt">)</span>
 
5120
<span class="gtkdoc opt">{</span>
 
5121
  GVariantIter iter<span class="gtkdoc opt">;</span>
 
5122
  GVariant <span class="gtkdoc opt">*</span>value<span class="gtkdoc opt">;</span>
 
5123
  gchar <span class="gtkdoc opt">*</span>key<span class="gtkdoc opt">;</span>
 
5124
 
 
5125
  <span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> dictionary<span class="gtkdoc opt">);</span>
 
5126
  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="glib-GVariant.html#g-variant-iter-loop">g_variant_iter_loop</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> <span class="string">&quot;{sv}&quot;</span><span class="gtkdoc opt">, &amp;</span>key<span class="gtkdoc opt">, &amp;</span>value<span class="gtkdoc opt">))</span>
 
5127
    <span class="gtkdoc opt">{</span>
 
5128
      <span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Item '%s' has type '%s'</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> key<span class="gtkdoc opt">,</span>
 
5129
               <span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">));</span>
 
5130
 
 
5131
      <span class="gtkdoc slc">// no need to free 'key' and 'value' here</span>
 
5132
      <span class="gtkdoc slc">// unless breaking out of this loop</span>
 
5133
    <span class="gtkdoc opt">}</span>
 
5134
<span class="gtkdoc opt">}</span></pre></td>
5133
5135
      </tr>
5134
5136
    </tbody>
5135
5137
  </table>
5447
5449
15
5448
5450
16
5449
5451
17</pre></td>
5450
 
        <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-GVariant.html#GVariant">GVariant</a> </span><span class="symbol">*</span>
5451
 
<span class="function">make_pointless_dictionary</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
5452
 
<span class="cbracket">{</span>
5453
 
<span class="normal">  </span><span class="usertype">GVariantBuilder</span><span class="normal"> builder</span><span class="symbol">;</span>
5454
 
<span class="normal">  </span><span class="type">int</span><span class="normal"> i</span><span class="symbol">;</span>
5455
 
 
5456
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-init">g_variant_builder_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> <a href="glib-GVariantType.html#G-VARIANT-TYPE-ARRAY:CAPS">G_VARIANT_TYPE_ARRAY</a></span><span class="symbol">);</span>
5457
 
<span class="normal">  </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol">&lt;</span><span class="normal"> </span><span class="number">16</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span>
5458
 
<span class="normal">    </span><span class="cbracket">{</span>
5459
 
<span class="normal">      </span><span class="usertype">gchar</span><span class="normal"> buf</span><span class="symbol">[</span><span class="number">3</span><span class="symbol">];</span>
5460
 
 
5461
 
<span class="normal">      </span><span class="function">sprintf</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">buf</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"%d"</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">);</span>
5462
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-add">g_variant_builder_add</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{is}"</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">,</span><span class="normal"> buf</span><span class="symbol">);</span>
5463
 
<span class="normal">    </span><span class="cbracket">}</span>
5464
 
 
5465
 
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-end">g_variant_builder_end</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">);</span>
5466
 
<span class="cbracket">}</span></pre></td>
 
5452
        <td class="listing_code"><pre class="programlisting">GVariant <span class="gtkdoc opt">*</span>
 
5453
<span class="function">make_pointless_dictionary</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
 
5454
<span class="gtkdoc opt">{</span>
 
5455
  GVariantBuilder builder<span class="gtkdoc opt">;</span>
 
5456
  <span class="gtkdoc kwb">int</span> i<span class="gtkdoc opt">;</span>
 
5457
 
 
5458
  <span class="function"><a href="glib-GVariant.html#g-variant-builder-init">g_variant_builder_init</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">,</span> G_VARIANT_TYPE_ARRAY<span class="gtkdoc opt">);</span>
 
5459
  <span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">&lt;</span> <span class="number">16</span><span class="gtkdoc opt">;</span> i<span class="gtkdoc opt">++)</span>
 
5460
    <span class="gtkdoc opt">{</span>
 
5461
      gchar buf<span class="gtkdoc opt">[</span><span class="number">3</span><span class="gtkdoc opt">];</span>
 
5462
 
 
5463
      <span class="function">sprintf</span> <span class="gtkdoc opt">(</span>buf<span class="gtkdoc opt">,</span> <span class="string">&quot;%d&quot;</span><span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
 
5464
      <span class="function"><a href="glib-GVariant.html#g-variant-builder-add">g_variant_builder_add</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">,</span> <span class="string">&quot;{is}&quot;</span><span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">,</span> buf<span class="gtkdoc opt">);</span>
 
5465
    <span class="gtkdoc opt">}</span>
 
5466
 
 
5467
  <span class="keyword">return</span> <span class="function"><a href="glib-GVariant.html#g-variant-builder-end">g_variant_builder_end</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">);</span>
 
5468
<span class="gtkdoc opt">}</span></pre></td>
5467
5469
      </tr>
5468
5470
    </tbody>
5469
5471
  </table>
5532
5534
10
5533
5535
11
5534
5536
12</pre></td>
5535
 
        <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-GVariant.html#GVariant">GVariant</a> </span><span class="symbol">*</span>
5536
 
<span class="function">make_pointless_dictionary</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
5537
 
<span class="cbracket">{</span>
5538
 
<span class="normal">  </span><span class="usertype">GVariantBuilder</span><span class="normal"> builder</span><span class="symbol">;</span>
5539
 
<span class="normal">  </span><span class="type">int</span><span class="normal"> i</span><span class="symbol">;</span>
 
5537
        <td class="listing_code"><pre class="programlisting">GVariant <span class="gtkdoc opt">*</span>
 
5538
<span class="function">make_pointless_dictionary</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
 
5539
<span class="gtkdoc opt">{</span>
 
5540
  GVariantBuilder builder<span class="gtkdoc opt">;</span>
 
5541
  <span class="gtkdoc kwb">int</span> i<span class="gtkdoc opt">;</span>
5540
5542
 
5541
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-init">g_variant_builder_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> <a href="glib-GVariantType.html#G-VARIANT-TYPE-ARRAY:CAPS">G_VARIANT_TYPE_ARRAY</a></span><span class="symbol">);</span>
5542
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-add-parsed">g_variant_builder_add_parsed</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{'width', &lt;%i&gt;}"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">600</span><span class="symbol">);</span>
5543
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-add-parsed">g_variant_builder_add_parsed</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{'title', &lt;%s&gt;}"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"foo"</span><span class="symbol">);</span>
5544
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-add-parsed">g_variant_builder_add_parsed</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{'transparency', &lt;0.5&gt;}"</span><span class="symbol">);</span>
5545
 
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-builder-end">g_variant_builder_end</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">builder</span><span class="symbol">);</span>
5546
 
<span class="cbracket">}</span></pre></td>
 
5543
  <span class="function"><a href="glib-GVariant.html#g-variant-builder-init">g_variant_builder_init</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">,</span> G_VARIANT_TYPE_ARRAY<span class="gtkdoc opt">);</span>
 
5544
  <span class="function"><a href="glib-GVariant.html#g-variant-builder-add-parsed">g_variant_builder_add_parsed</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">,</span> <span class="string">&quot;{'width', &lt;%i&gt;}&quot;</span><span class="gtkdoc opt">,</span> <span class="number">600</span><span class="gtkdoc opt">);</span>
 
5545
  <span class="function"><a href="glib-GVariant.html#g-variant-builder-add-parsed">g_variant_builder_add_parsed</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">,</span> <span class="string">&quot;{'title', &lt;%s&gt;}&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;foo&quot;</span><span class="gtkdoc opt">);</span>
 
5546
  <span class="function"><a href="glib-GVariant.html#g-variant-builder-add-parsed">g_variant_builder_add_parsed</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">,</span> <span class="string">&quot;{'transparency', &lt;0.5&gt;}&quot;</span><span class="gtkdoc opt">);</span>
 
5547
  <span class="keyword">return</span> <span class="function"><a href="glib-GVariant.html#g-variant-builder-end">g_variant_builder_end</a></span> <span class="gtkdoc opt">(&amp;</span>builder<span class="gtkdoc opt">);</span>
 
5548
<span class="gtkdoc opt">}</span></pre></td>
5547
5549
      </tr>
5548
5550
    </tbody>
5549
5551
  </table>
6340
6342
    <tbody>
6341
6343
      <tr>
6342
6344
        <td class="listing_lines" align="right"><pre>1</pre></td>
6343
 
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="glib-GVariant.html#g-variant-new-parsed">g_variant_new_parsed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"[('one', 1), ('two', %i), (%s, 3)]"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"three"</span><span class="symbol">);</span></pre></td>
 
6345
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="glib-GVariant.html#g-variant-new-parsed">g_variant_new_parsed</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;[('one', 1), ('two', %i), (%s, 3)]&quot;</span><span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">,</span> <span class="string">&quot;three&quot;</span><span class="gtkdoc opt">);</span></pre></td>
6344
6346
      </tr>
6345
6347
    </tbody>
6346
6348
  </table>
6355
6357
    <tbody>
6356
6358
      <tr>
6357
6359
        <td class="listing_lines" align="right"><pre>1</pre></td>
6358
 
        <td class="listing_code"><pre class="programlisting"><span class="symbol">[(</span><span class="string">'one'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">),</span><span class="normal"> </span><span class="symbol">(</span><span class="string">'two'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">),</span><span class="normal"> </span><span class="symbol">(</span><span class="string">'three'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">3</span><span class="symbol">)]</span></pre></td>
 
6360
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">[(</span><span class="string">'one'</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">), (</span><span class="string">'two'</span><span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">), (</span><span class="string">'three'</span><span class="gtkdoc opt">,</span> <span class="number">3</span><span class="gtkdoc opt">)]</span></pre></td>
6359
6361
      </tr>
6360
6362
    </tbody>
6361
6363
  </table>
6418
6420
        <td class="listing_lines" align="right"><pre>1
6419
6421
2
6420
6422
3</pre></td>
6421
 
        <td class="listing_code"><pre class="programlisting"><span class="normal">unterminated </span><span class="usertype">string</span><span class="normal"> constant</span><span class="symbol">:</span>
6422
 
<span class="normal">  </span><span class="symbol">(</span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">,</span><span class="normal"> </span><span class="number">3</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'abc</span>
 
6423
        <td class="listing_code"><pre class="programlisting">unterminated string constant<span class="gtkdoc opt">:</span>
 
6424
  <span class="gtkdoc opt">(</span><span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">,</span> <span class="number">3</span><span class="gtkdoc opt">,</span> <span class="string">'abc</span>
6423
6425
<span class="string">            ^^^^</span></pre></td>
6424
6426
      </tr>
6425
6427
    </tbody>
6435
6437
        <td class="listing_lines" align="right"><pre>1
6436
6438
2
6437
6439
3</pre></td>
6438
 
        <td class="listing_code"><pre class="programlisting"><span class="normal">unable to find a </span><span class="usertype">common</span><span class="normal"> type</span><span class="symbol">:</span>
6439
 
<span class="normal">  </span><span class="symbol">[</span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">,</span><span class="normal"> </span><span class="number">3</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'str'</span><span class="symbol">]</span>
6440
 
<span class="normal">   </span><span class="symbol">^</span><span class="normal">        </span><span class="symbol">^^^^^</span></pre></td>
 
6440
        <td class="listing_code"><pre class="programlisting">unable to find a common type<span class="gtkdoc opt">:</span>
 
6441
  <span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">,</span> <span class="number">3</span><span class="gtkdoc opt">,</span> <span class="string">'str'</span><span class="gtkdoc opt">]</span>
 
6442
   <span class="gtkdoc opt">^        ^^^^^</span></pre></td>
6441
6443
      </tr>
6442
6444
    </tbody>
6443
6445
  </table>
6718
6720
17
6719
6721
18
6720
6722
19</pre></td>
6721
 
        <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-GVariant.html#GVariant">GVariant</a> </span><span class="symbol">*</span>
6722
 
<span class="function">add_to_count</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal">  </span><span class="symbol">*</span><span class="normal">orig</span><span class="symbol">,</span>
6723
 
<span class="normal">              </span><span class="usertype">GError</span><span class="normal">   </span><span class="symbol">**</span><span class="normal">error</span><span class="symbol">)</span>
6724
 
<span class="cbracket">{</span>
6725
 
<span class="normal">  </span><span class="usertype">GVariantDict</span><span class="normal"> dict</span><span class="symbol">;</span>
6726
 
<span class="normal">  </span><span class="usertype">guint32</span><span class="normal"> count</span><span class="symbol">;</span>
6727
 
 
6728
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-init">g_variant_dict_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">dict</span><span class="symbol">,</span><span class="normal"> orig</span><span class="symbol">);</span>
6729
 
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="glib-GVariant.html#g-variant-dict-lookup">g_variant_dict_lookup</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">dict</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"count"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">count</span><span class="symbol">))</span>
6730
 
<span class="normal">    </span><span class="cbracket">{</span>
6731
 
<span class="normal">      </span><span class="function"><a href="glib-Error-Reporting.html#g-set-error">g_set_error</a></span><span class="normal"> </span><span class="symbol">(...);</span>
6732
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-clear">g_variant_dict_clear</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">dict</span><span class="symbol">);</span>
6733
 
<span class="normal">      </span><span class="keyword">return</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
6734
 
<span class="normal">    </span><span class="cbracket">}</span>
6735
 
 
6736
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-insert">g_variant_dict_insert</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">dict</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"count"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> count </span><span class="symbol">+</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
6737
 
 
6738
 
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-end">g_variant_dict_end</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">dict</span><span class="symbol">);</span>
6739
 
<span class="cbracket">}</span></pre></td>
 
6723
        <td class="listing_code"><pre class="programlisting">GVariant <span class="gtkdoc opt">*</span>
 
6724
<span class="function">add_to_count</span> <span class="gtkdoc opt">(</span>GVariant  <span class="gtkdoc opt">*</span>orig<span class="gtkdoc opt">,</span>
 
6725
              GError   <span class="gtkdoc opt">**</span>error<span class="gtkdoc opt">)</span>
 
6726
<span class="gtkdoc opt">{</span>
 
6727
  GVariantDict dict<span class="gtkdoc opt">;</span>
 
6728
  guint32 count<span class="gtkdoc opt">;</span>
 
6729
 
 
6730
  <span class="function"><a href="glib-GVariant.html#g-variant-dict-init">g_variant_dict_init</a></span> <span class="gtkdoc opt">(&amp;</span>dict<span class="gtkdoc opt">,</span> orig<span class="gtkdoc opt">);</span>
 
6731
  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="glib-GVariant.html#g-variant-dict-lookup">g_variant_dict_lookup</a></span> <span class="gtkdoc opt">(&amp;</span>dict<span class="gtkdoc opt">,</span> <span class="string">&quot;count&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;u&quot;</span><span class="gtkdoc opt">, &amp;</span>count<span class="gtkdoc opt">))</span>
 
6732
    <span class="gtkdoc opt">{</span>
 
6733
      <span class="function"><a href="glib-Error-Reporting.html#g-set-error">g_set_error</a></span> <span class="gtkdoc opt">(...);</span>
 
6734
      <span class="function"><a href="glib-GVariant.html#g-variant-dict-clear">g_variant_dict_clear</a></span> <span class="gtkdoc opt">(&amp;</span>dict<span class="gtkdoc opt">);</span>
 
6735
      <span class="keyword">return</span> NULL<span class="gtkdoc opt">;</span>
 
6736
    <span class="gtkdoc opt">}</span>
 
6737
 
 
6738
  <span class="function"><a href="glib-GVariant.html#g-variant-dict-insert">g_variant_dict_insert</a></span> <span class="gtkdoc opt">(&amp;</span>dict<span class="gtkdoc opt">,</span> <span class="string">&quot;count&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;u&quot;</span><span class="gtkdoc opt">,</span> count <span class="gtkdoc opt">+</span> <span class="number">1</span><span class="gtkdoc opt">);</span>
 
6739
 
 
6740
  <span class="keyword">return</span> <span class="function"><a href="glib-GVariant.html#g-variant-dict-end">g_variant_dict_end</a></span> <span class="gtkdoc opt">(&amp;</span>dict<span class="gtkdoc opt">);</span>
 
6741
<span class="gtkdoc opt">}</span></pre></td>
6740
6742
      </tr>
6741
6743
    </tbody>
6742
6744
  </table>
6775
6777
23
6776
6778
24
6777
6779
25</pre></td>
6778
 
        <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-GVariant.html#GVariant">GVariant</a> </span><span class="symbol">*</span>
6779
 
<span class="function">add_to_count</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal">  </span><span class="symbol">*</span><span class="normal">orig</span><span class="symbol">,</span>
6780
 
<span class="normal">              </span><span class="usertype">GError</span><span class="normal">   </span><span class="symbol">**</span><span class="normal">error</span><span class="symbol">)</span>
6781
 
<span class="cbracket">{</span>
6782
 
<span class="normal">  </span><span class="usertype">GVariantDict</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dict</span><span class="symbol">;</span>
6783
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">result</span><span class="symbol">;</span>
6784
 
<span class="normal">  </span><span class="usertype">guint32</span><span class="normal"> count</span><span class="symbol">;</span>
6785
 
 
6786
 
<span class="normal">  dict </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-new">g_variant_dict_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">orig</span><span class="symbol">);</span>
6787
 
 
6788
 
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-dict-lookup">g_variant_dict_lookup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dict</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"count"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">count</span><span class="symbol">))</span>
6789
 
<span class="normal">    </span><span class="cbracket">{</span>
6790
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-insert">g_variant_dict_insert</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dict</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"count"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> count </span><span class="symbol">+</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
6791
 
<span class="normal">      result </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-end">g_variant_dict_end</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dict</span><span class="symbol">);</span>
6792
 
<span class="normal">    </span><span class="cbracket">}</span>
6793
 
<span class="normal">  </span><span class="keyword">else</span>
6794
 
<span class="normal">    </span><span class="cbracket">{</span>
6795
 
<span class="normal">      </span><span class="function"><a href="glib-Error-Reporting.html#g-set-error">g_set_error</a></span><span class="normal"> </span><span class="symbol">(...);</span>
6796
 
<span class="normal">      result </span><span class="symbol">=</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
6797
 
<span class="normal">    </span><span class="cbracket">}</span>
6798
 
 
6799
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-dict-unref">g_variant_dict_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dict</span><span class="symbol">);</span>
6800
 
 
6801
 
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> result</span><span class="symbol">;</span>
6802
 
<span class="cbracket">}</span></pre></td>
 
6780
        <td class="listing_code"><pre class="programlisting">GVariant <span class="gtkdoc opt">*</span>
 
6781
<span class="function">add_to_count</span> <span class="gtkdoc opt">(</span>GVariant  <span class="gtkdoc opt">*</span>orig<span class="gtkdoc opt">,</span>
 
6782
              GError   <span class="gtkdoc opt">**</span>error<span class="gtkdoc opt">)</span>
 
6783
<span class="gtkdoc opt">{</span>
 
6784
  GVariantDict <span class="gtkdoc opt">*</span>dict<span class="gtkdoc opt">;</span>
 
6785
  GVariant <span class="gtkdoc opt">*</span>result<span class="gtkdoc opt">;</span>
 
6786
  guint32 count<span class="gtkdoc opt">;</span>
 
6787
 
 
6788
  dict <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-GVariant.html#g-variant-dict-new">g_variant_dict_new</a></span> <span class="gtkdoc opt">(</span>orig<span class="gtkdoc opt">);</span>
 
6789
 
 
6790
  <span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="glib-GVariant.html#g-variant-dict-lookup">g_variant_dict_lookup</a></span> <span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">,</span> <span class="string">&quot;count&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;u&quot;</span><span class="gtkdoc opt">, &amp;</span>count<span class="gtkdoc opt">))</span>
 
6791
    <span class="gtkdoc opt">{</span>
 
6792
      <span class="function"><a href="glib-GVariant.html#g-variant-dict-insert">g_variant_dict_insert</a></span> <span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">,</span> <span class="string">&quot;count&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;u&quot;</span><span class="gtkdoc opt">,</span> count <span class="gtkdoc opt">+</span> <span class="number">1</span><span class="gtkdoc opt">);</span>
 
6793
      result <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-GVariant.html#g-variant-dict-end">g_variant_dict_end</a></span> <span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">);</span>
 
6794
    <span class="gtkdoc opt">}</span>
 
6795
  <span class="keyword">else</span>
 
6796
    <span class="gtkdoc opt">{</span>
 
6797
      <span class="function"><a href="glib-Error-Reporting.html#g-set-error">g_set_error</a></span> <span class="gtkdoc opt">(...);</span>
 
6798
      result <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
 
6799
    <span class="gtkdoc opt">}</span>
 
6800
 
 
6801
  <span class="function"><a href="glib-GVariant.html#g-variant-dict-unref">g_variant_dict_unref</a></span> <span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">);</span>
 
6802
 
 
6803
  <span class="keyword">return</span> result<span class="gtkdoc opt">;</span>
 
6804
<span class="gtkdoc opt">}</span></pre></td>
6803
6805
      </tr>
6804
6806
    </tbody>
6805
6807
  </table>