<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <package name="gobject-introspection-1.0"/>
  <c:include name="girepository.h"/>
  <doc:format name="unknown"/>
  <namespace name="GIRepository"
             version="2.0"
             shared-library="libgirepository-1.0.so.1"
             c:identifier-prefixes="GI"
             c:symbol-prefixes="g,gi">
    <alias name="ArgInfo" c:type="GIArgInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="168">Represents an argument.</doc>
      <source-position filename="girepository/gitypes.h" line="173"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="CallableInfo" c:type="GICallableInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="46">Represents a callable, either #GIFunctionInfo, #GICallbackInfo or
#GIVFuncInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="52"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="CallbackInfo" c:type="GICallbackInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="69">Represents a callback, eg arguments and return value.</doc>
      <source-position filename="girepository/gitypes.h" line="74"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="ConstantInfo" c:type="GIConstantInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="118">Represents a constant.</doc>
      <source-position filename="girepository/gitypes.h" line="123"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="EnumInfo" c:type="GIEnumInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="97">Represents an enum or a flag.</doc>
      <source-position filename="girepository/gitypes.h" line="102"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="FieldInfo" c:type="GIFieldInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="161">Represents a field of a #GIStructInfo or a #GIUnionInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="166"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="FunctionInfo" c:type="GIFunctionInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="54">Represents a function, eg arguments and return value.</doc>
      <source-position filename="girepository/gitypes.h" line="59"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="InterfaceInfo" c:type="GIInterfaceInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="111">Represents an interface.</doc>
      <source-position filename="girepository/gitypes.h" line="116"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="ObjectInfo" c:type="GIObjectInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="104">Represents an object.</doc>
      <source-position filename="girepository/gitypes.h" line="109"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="PropertyInfo" c:type="GIPropertyInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="154">Represents a property of a #GIObjectInfo or a #GIInterfaceInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="159"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="RegisteredTypeInfo" c:type="GIRegisteredTypeInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="76">Represent a registered type.</doc>
      <source-position filename="girepository/gitypes.h" line="81"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="SignalInfo" c:type="GISignalInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="140">Represents a signal.</doc>
      <source-position filename="girepository/gitypes.h" line="145"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="StructInfo" c:type="GIStructInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="83">Represents a struct.</doc>
      <source-position filename="girepository/gitypes.h" line="88"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="TypeInfo" c:type="GITypeInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="175">Represents type information, direction, transfer etc.</doc>
      <source-position filename="girepository/gitypes.h" line="180"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="UnionInfo" c:type="GIUnionInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="90">Represents a union.</doc>
      <source-position filename="girepository/gitypes.h" line="95"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="VFuncInfo" c:type="GIVFuncInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="147">Represents a virtual function.</doc>
      <source-position filename="girepository/gitypes.h" line="152"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <alias name="ValueInfo" c:type="GIValueInfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="133">Represents a enum value of a #GIEnumInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="138"/>
      <type name="BaseInfo" c:type="GIBaseInfo"/>
    </alias>
    <union name="Argument" c:type="GIArgument">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="214">Stores an argument of varying type</doc>
      <source-position filename="girepository/gitypes.h" line="212"/>
      <field name="v_boolean" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="216">TODO</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="v_int8" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="217">TODO</doc>
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="v_uint8" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="218">TODO</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="v_int16" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="219">TODO</doc>
        <type name="gint16" c:type="gint16"/>
      </field>
      <field name="v_uint16" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="220">TODO</doc>
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="v_int32" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="221">TODO</doc>
        <type name="gint32" c:type="gint32"/>
      </field>
      <field name="v_uint32" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="222">TODO</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="v_int64" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="223">TODO</doc>
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="v_uint64" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="224">TODO</doc>
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="v_float" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="225">TODO</doc>
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="v_double" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="226">TODO</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="v_short" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="227">TODO</doc>
        <type name="gshort" c:type="gshort"/>
      </field>
      <field name="v_ushort" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="228">TODO</doc>
        <type name="gushort" c:type="gushort"/>
      </field>
      <field name="v_int" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="229">TODO</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="v_uint" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="230">TODO</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="v_long" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="231">TODO</doc>
        <type name="glong" c:type="glong"/>
      </field>
      <field name="v_ulong" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="232">TODO</doc>
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="v_ssize" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="233">TODO</doc>
        <type name="gssize" c:type="gssize"/>
      </field>
      <field name="v_size" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="234">TODO</doc>
        <type name="gsize" c:type="gsize"/>
      </field>
      <field name="v_string" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="235">TODO</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="v_pointer" writable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="236">TODO</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </union>
    <enumeration name="ArrayType" c:type="GIArrayType">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="437">The type of array in a #GITypeInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="451"/>
      <member name="c" value="0" c:identifier="GI_ARRAY_TYPE_C">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="439">a C array, char[] for instance</doc>
      </member>
      <member name="array" value="1" c:identifier="GI_ARRAY_TYPE_ARRAY">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="440">a @GArray array</doc>
      </member>
      <member name="ptr_array"
              value="2"
              c:identifier="GI_ARRAY_TYPE_PTR_ARRAY">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="441">a #GPtrArray array</doc>
      </member>
      <member name="byte_array"
              value="3"
              c:identifier="GI_ARRAY_TYPE_BYTE_ARRAY">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="442">a #GByteArray array</doc>
      </member>
    </enumeration>
    <record name="AttributeIter" c:type="GIAttributeIter">
      <doc xml:space="preserve"
           filename="girepository/gibaseinfo.h"
           line="36">An opaque structure used to iterate over attributes
in a #GIBaseInfo struct.</doc>
      <source-position filename="girepository/gibaseinfo.h" line="48"/>
      <field name="data" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="data2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="data3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="data4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <record name="BaseInfo"
            c:type="GIBaseInfo"
            glib:type-name="GIBaseInfo"
            glib:get-type="g_base_info_gtype_get_type"
            c:symbol-prefix="base_info_gtype">
      <doc xml:space="preserve"
           filename="girepository/gibaseinfo.c"
           line="183">GIBaseInfo is the common base struct of all other Info structs
accessible through the #GIRepository API.

All info structures can be cast to a #GIBaseInfo, for instance:

|[&lt;!-- language="C" --&gt;
   GIFunctionInfo *function_info = ...;
   GIBaseInfo *info = (GIBaseInfo *) function_info;
]|

Most #GIRepository APIs returning a #GIBaseInfo is actually
creating a new struct; in other words, g_base_info_unref() has to
be called when done accessing the data.

#GIBaseInfo structuress are normally accessed by calling either
g_irepository_find_by_name(), g_irepository_find_by_gtype() or
g_irepository_get_info().

|[&lt;!-- language="C" --&gt;
GIBaseInfo *button_info =
  g_irepository_find_by_name (NULL, "Gtk", "Button");

// ... use button_info ...

g_base_info_unref (button_info);
]|

## Hierarchy

|[&lt;!-- language="plain" --&gt;
  GIBaseInfo
   +---- GIArgInfo
   +---- GICallableInfo
   +---- GIConstantInfo
   +---- GIFieldInfo
   +---- GIPropertyInfo
   +---- GIRegisteredTypeInfo
   +---- GITypeInfo
]|</doc>
      <source-position filename="girepository/gitypes.h" line="44"/>
      <field name="dummy1" readable="0" private="1">
        <type name="gint32" c:type="gint32"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="gint32" c:type="gint32"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy5" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy6" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="dummy7" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="equal" c:identifier="g_base_info_equal">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="652">Compare two #GIBaseInfo.

Using pointer comparison is not practical since many functions return
different instances of #GIBaseInfo that refers to the same part of the
TypeLib; use this function instead to do #GIBaseInfo comparisons.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="663">%TRUE if and only if @info1 equals @info2.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="654">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
          <parameter name="info2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="655">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attribute" c:identifier="g_base_info_get_attribute">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="484">Retrieve an arbitrary attribute associated with this node.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="491">The value of the attribute, or %NULL if no such attribute exists</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="486">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="487">a freeform string naming an attribute</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_container" c:identifier="g_base_info_get_container">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="622">Obtain the container of the @info. The container is the parent
GIBaseInfo. For instance, the parent of a #GIFunctionInfo is an
#GIObjectInfo or #GIInterfaceInfo.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="630">the container</doc>
          <type name="BaseInfo" c:type="GIBaseInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="624">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="g_base_info_get_name">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="292">Obtain the name of the @info. What the name represents depends on
the #GIInfoType of the @info. For instance for #GIFunctionInfo it is
the name of the function.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="300">the name of @info or %NULL if it lacks a name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="294">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_namespace" c:identifier="g_base_info_get_namespace">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="391">Obtain the namespace of @info.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="397">the namespace</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="393">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_type" c:identifier="g_base_info_get_type">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="277">Obtain the info type of the GIBaseInfo.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="283">the info type of @info</doc>
          <type name="InfoType" c:type="GIInfoType"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="279">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_typelib" c:identifier="g_base_info_get_typelib">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="638">Obtain the typelib this @info belongs to</doc>
        <source-position filename="girepository/gibaseinfo.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="644">the typelib.</doc>
          <type name="Typelib" c:type="GITypelib*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="640">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_deprecated" c:identifier="g_base_info_is_deprecated">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="417">Obtain whether the @info is represents a metadata which is
deprecated or not.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="424">%TRUE if deprecated</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="419">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iterate_attributes"
              c:identifier="g_base_info_iterate_attributes">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="561">Iterate over all attributes associated with this node.  The iterator
structure is typically stack allocated, and must have its first
member initialized to %NULL.  Attributes are arbitrary namespaced key–value
pairs which can be attached to almost any item.  They are intended for use
by software higher in the toolchain than bindings, and are distinct from
normal GIR annotations.

Both the @name and @value should be treated as constants
and must not be freed.

|[&lt;!-- language="C" --&gt;
void
print_attributes (GIBaseInfo *info)
{
  GIAttributeIter iter = { 0, };
  char *name;
  char *value;
  while (g_base_info_iterate_attributes (info, &amp;iter, &amp;name, &amp;value))
    {
      g_print ("attribute name: %s value: %s", name, value);
    }
}
]|</doc>
        <source-position filename="girepository/gibaseinfo.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="592">%TRUE if there are more attributes</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="563">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
          <parameter name="iterator"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="564">a #GIAttributeIter structure, must be initialized; see below</doc>
            <type name="AttributeIter" c:type="GIAttributeIter*"/>
          </parameter>
          <parameter name="name"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="565">Returned name, must not be freed</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="566">Returned name, must not be freed</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="g_base_info_ref" introspectable="0">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="229">Increases the reference count of @info.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="57"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="235">the same @info.</doc>
          <type name="BaseInfo" c:type="GIBaseInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="231">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="g_base_info_unref" introspectable="0">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="248">Decreases the reference count of @info. When its reference count
drops to 0, the info is freed.</doc>
        <source-position filename="girepository/gibaseinfo.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/gibaseinfo.c"
                 line="250">a #GIBaseInfo</doc>
            <type name="BaseInfo" c:type="GIBaseInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <function-macro name="CHECK_VERSION"
                    c:identifier="GI_CHECK_VERSION"
                    version="1.60"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="53">Checks the version of the girepository library that is being compiled
against.</doc>
      <source-position filename="output/girepository/giversion.h" line="32"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="girepository/giversion.c"
               line="55">the major version to check for</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="girepository/giversion.c"
               line="56">the minor version to check for</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="girepository/giversion.c"
               line="57">the micro version to check for</doc>
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="Direction" c:type="GIDirection">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="324">The direction of a #GIArgInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="336"/>
      <member name="in" value="0" c:identifier="GI_DIRECTION_IN">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="326">in argument.</doc>
      </member>
      <member name="out" value="1" c:identifier="GI_DIRECTION_OUT">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="327">out argument.</doc>
      </member>
      <member name="inout" value="2" c:identifier="GI_DIRECTION_INOUT">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="328">in and out argument.</doc>
      </member>
    </enumeration>
    <bitfield name="FieldInfoFlags" c:type="GIFieldInfoFlags">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="453">Flags for a #GIFieldInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="465"/>
      <member name="readable" value="1" c:identifier="GI_FIELD_IS_READABLE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="455">field is readable.</doc>
      </member>
      <member name="writable" value="2" c:identifier="GI_FIELD_IS_WRITABLE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="456">field is writable.</doc>
      </member>
    </bitfield>
    <bitfield name="FunctionInfoFlags" c:type="GIFunctionInfoFlags">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="484">Flags for a #GIFunctionInfo struct.</doc>
      <source-position filename="girepository/gitypes.h" line="503"/>
      <member name="is_method" value="1" c:identifier="GI_FUNCTION_IS_METHOD">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="486">is a method.</doc>
      </member>
      <member name="is_constructor"
              value="2"
              c:identifier="GI_FUNCTION_IS_CONSTRUCTOR">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="487">is a constructor.</doc>
      </member>
      <member name="is_getter" value="4" c:identifier="GI_FUNCTION_IS_GETTER">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="488">is a getter of a #GIPropertyInfo.</doc>
      </member>
      <member name="is_setter" value="8" c:identifier="GI_FUNCTION_IS_SETTER">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="489">is a setter of a #GIPropertyInfo.</doc>
      </member>
      <member name="wraps_vfunc"
              value="16"
              c:identifier="GI_FUNCTION_WRAPS_VFUNC">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="490">represents a virtual function.</doc>
      </member>
      <member name="throws" value="32" c:identifier="GI_FUNCTION_THROWS">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="491">the function may throw an error.</doc>
      </member>
    </bitfield>
    <function-macro name="IREPOSITORY"
                    c:identifier="G_IREPOSITORY"
                    introspectable="0">
      <source-position filename="girepository/girepository.h" line="55"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IREPOSITORY_CLASS"
                    c:identifier="G_IREPOSITORY_CLASS"
                    introspectable="0">
      <source-position filename="girepository/girepository.h" line="56"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IREPOSITORY_GET_CLASS"
                    c:identifier="G_IREPOSITORY_GET_CLASS"
                    introspectable="0">
      <source-position filename="girepository/girepository.h" line="59"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ARG_INFO"
                    c:identifier="GI_IS_ARG_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.h"
           line="34">Checks if @info is a GIArgInfo.</doc>
      <source-position filename="girepository/giarginfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CALLABLE_INFO"
                    c:identifier="GI_IS_CALLABLE_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.h"
           line="34">Checks if @info is a #GICallableInfo or derived from it.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONSTANT_INFO"
                    c:identifier="GI_IS_CONSTANT_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giconstantinfo.h"
           line="34">Checks if @info is a #GIConstantInfo.</doc>
      <source-position filename="girepository/giconstantinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/giconstantinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ENUM_INFO"
                    c:identifier="GI_IS_ENUM_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.h"
           line="34">Checks if @info is a #GIEnumInfo.</doc>
      <source-position filename="girepository/gienuminfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FIELD_INFO"
                    c:identifier="GI_IS_FIELD_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.h"
           line="34">Checks if @info is a #GIFieldInfo.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="41"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_FUNCTION_INFO"
                    c:identifier="GI_IS_FUNCTION_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.h"
           line="34">Checks if @info is a #GIFunctionInfo.</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_INTERFACE_INFO"
                    c:identifier="GI_IS_INTERFACE_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.h"
           line="34">Checks if @info is a #GIInterfaceInfo.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IREPOSITORY"
                    c:identifier="G_IS_IREPOSITORY"
                    introspectable="0">
      <source-position filename="girepository/girepository.h" line="57"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IREPOSITORY_CLASS"
                    c:identifier="G_IS_IREPOSITORY_CLASS"
                    introspectable="0">
      <source-position filename="girepository/girepository.h" line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OBJECT_INFO"
                    c:identifier="GI_IS_OBJECT_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.h"
           line="71">Checks if @info is a #GIObjectInfo.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="77"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.h"
               line="73">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PROPERTY_INFO"
                    c:identifier="GI_IS_PROPERTY_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.h"
           line="34">Checks if @info is a #GIPropertyInfo.</doc>
      <source-position filename="girepository/gipropertyinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gipropertyinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REGISTERED_TYPE_INFO"
                    c:identifier="GI_IS_REGISTERED_TYPE_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giregisteredtypeinfo.h"
           line="35">Checks if @info is a #GIRegisteredTypeInfo or derived from it.</doc>
      <source-position filename="girepository/giregisteredtypeinfo.h"
                       line="41"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/giregisteredtypeinfo.h"
               line="37">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SIGNAL_INFO"
                    c:identifier="GI_IS_SIGNAL_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gisignalinfo.h"
           line="35">Checks if @info is a #GISignalInfo.</doc>
      <source-position filename="girepository/gisignalinfo.h" line="41"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gisignalinfo.h"
               line="37">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_STRUCT_INFO"
                    c:identifier="GI_IS_STRUCT_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.h"
           line="34">Checks if @info is a #GIStructInfo.</doc>
      <source-position filename="girepository/gistructinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TYPE_INFO"
                    c:identifier="GI_IS_TYPE_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.h"
           line="34">Checks if @info is a #GITypeInfo.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_UNION_INFO"
                    c:identifier="GI_IS_UNION_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.h"
           line="34">Checks if @info is a #GIUnionInfo.</doc>
      <source-position filename="girepository/giunioninfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VALUE_INFO"
                    c:identifier="GI_IS_VALUE_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.h"
           line="44">Checks if @info is a #GIValueInfo.</doc>
      <source-position filename="girepository/gienuminfo.h" line="50"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.h"
               line="46">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VFUNC_INFO"
                    c:identifier="GI_IS_VFUNC_INFO"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.h"
           line="34">Checks if @info is a #GIVfuncInfo.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="40"/>
      <parameters>
        <parameter name="info">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.h"
               line="36">an info structure</doc>
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="InfoType" c:type="GIInfoType">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="242">The type of a GIBaseInfo struct.</doc>
      <source-position filename="girepository/gitypes.h" line="290"/>
      <member name="invalid" value="0" c:identifier="GI_INFO_TYPE_INVALID">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="244">invalid type</doc>
      </member>
      <member name="function" value="1" c:identifier="GI_INFO_TYPE_FUNCTION">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="245">function, see #GIFunctionInfo</doc>
      </member>
      <member name="callback" value="2" c:identifier="GI_INFO_TYPE_CALLBACK">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="246">callback, see #GIFunctionInfo</doc>
      </member>
      <member name="struct" value="3" c:identifier="GI_INFO_TYPE_STRUCT">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="247">struct, see #GIStructInfo</doc>
      </member>
      <member name="boxed" value="4" c:identifier="GI_INFO_TYPE_BOXED">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="248">boxed, see #GIStructInfo or #GIUnionInfo</doc>
      </member>
      <member name="enum" value="5" c:identifier="GI_INFO_TYPE_ENUM">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="249">enum, see #GIEnumInfo</doc>
      </member>
      <member name="flags" value="6" c:identifier="GI_INFO_TYPE_FLAGS">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="250">flags, see #GIEnumInfo</doc>
      </member>
      <member name="object" value="7" c:identifier="GI_INFO_TYPE_OBJECT">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="251">object, see #GIObjectInfo</doc>
      </member>
      <member name="interface" value="8" c:identifier="GI_INFO_TYPE_INTERFACE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="252">interface, see #GIInterfaceInfo</doc>
      </member>
      <member name="constant" value="9" c:identifier="GI_INFO_TYPE_CONSTANT">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="253">contant, see #GIConstantInfo</doc>
      </member>
      <member name="invalid_0"
              value="10"
              c:identifier="GI_INFO_TYPE_INVALID_0">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="254">deleted, used to be GI_INFO_TYPE_ERROR_DOMAIN.</doc>
      </member>
      <member name="union" value="11" c:identifier="GI_INFO_TYPE_UNION">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="255">union, see #GIUnionInfo</doc>
      </member>
      <member name="value" value="12" c:identifier="GI_INFO_TYPE_VALUE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="256">enum value, see #GIValueInfo</doc>
      </member>
      <member name="signal" value="13" c:identifier="GI_INFO_TYPE_SIGNAL">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="257">signal, see #GISignalInfo</doc>
      </member>
      <member name="vfunc" value="14" c:identifier="GI_INFO_TYPE_VFUNC">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="258">virtual function, see #GIVFuncInfo</doc>
      </member>
      <member name="property" value="15" c:identifier="GI_INFO_TYPE_PROPERTY">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="259">GObject property, see #GIPropertyInfo</doc>
      </member>
      <member name="field" value="16" c:identifier="GI_INFO_TYPE_FIELD">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="260">struct or union field, see #GIFieldInfo</doc>
      </member>
      <member name="arg" value="17" c:identifier="GI_INFO_TYPE_ARG">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="261">argument of a function or callback, see #GIArgInfo</doc>
      </member>
      <member name="type" value="18" c:identifier="GI_INFO_TYPE_TYPE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="262">type information, see #GITypeInfo</doc>
      </member>
      <member name="unresolved"
              value="19"
              c:identifier="GI_INFO_TYPE_UNRESOLVED">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="263">unresolved type, a type which is not present in
  the typelib, or any of its dependencies.</doc>
      </member>
    </enumeration>
    <constant name="MAJOR_VERSION"
              value="1"
              c:type="GI_MAJOR_VERSION"
              version="1.60">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="29">The major version number of the girepository library.</doc>
      <source-position filename="output/girepository/giversion.h" line="28"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION"
              value="0"
              c:type="GI_MICRO_VERSION"
              version="1.60">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="45">The micro version number of the girepository library.</doc>
      <source-position filename="output/girepository/giversion.h" line="30"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION"
              value="86"
              c:type="GI_MINOR_VERSION"
              version="1.60">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="37">The minor version number of the girepository library.</doc>
      <source-position filename="output/girepository/giversion.h" line="29"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <callback name="ObjectInfoGetValueFunction"
              c:type="GIObjectInfoGetValueFunction"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.h"
           line="61">Extract an object instance out of @value</doc>
      <source-position filename="girepository/giobjectinfo.h" line="69"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.h"
             line="67">the object instance</doc>
        <type name="gpointer" c:type="void*"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.h"
               line="63">a #GValue</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="ObjectInfoRefFunction"
              c:type="GIObjectInfoRefFunction"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.h"
           line="34">Increases the reference count of an object instance.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="42"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.h"
             line="40">the object instance</doc>
        <type name="gpointer" c:type="void*"/>
      </return-value>
      <parameters>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.h"
               line="36">object instance pointer</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="ObjectInfoSetValueFunction"
              c:type="GIObjectInfoSetValueFunction"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.h"
           line="52">Update @value and attach the object instance pointer @object to it.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="59"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.h"
               line="54">a #GValue</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.h"
               line="55">object instance pointer</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="ObjectInfoUnrefFunction"
              c:type="GIObjectInfoUnrefFunction"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.h"
           line="44">Decreases the reference count of an object instance.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="50"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.h"
               line="46">object instance pointer</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Repository"
           c:symbol-prefix="irepository"
           c:type="GIRepository"
           parent="GObject.Object"
           glib:type-name="GIRepository"
           glib:get-type="g_irepository_get_type"
           glib:type-struct="RepositoryClass">
      <doc xml:space="preserve"
           filename="girepository/girepository.c"
           line="37">#GIRepository is used to manage repositories of namespaces. Namespaces
are represented on disk by type libraries (.typelib files).

### Discovery of type libraries

#GIRepository will typically look for a `girepository-1.0` directory
under the library directory used when compiling gobject-introspection.

It is possible to control the search paths programmatically, using
g_irepository_prepend_search_path(). It is also possible to modify
the search paths by using the `GI_TYPELIB_PATH` environment variable.
The environment variable takes precedence over the default search path
and the g_irepository_prepend_search_path() calls.</doc>
      <source-position filename="girepository/girepository.h" line="82"/>
      <function name="dump" c:identifier="g_irepository_dump" throws="1">
        <source-position filename="girepository/girepository.h" line="200"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="arg" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_quark" c:identifier="g_irepository_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="get_default" c:identifier="g_irepository_get_default">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="674">Returns the singleton process-global default #GIRepository. It is
not currently supported to have multiple repositories in a
particular process, but this function is provided in the unlikely
eventuality that it would become possible, and as a convenience for
higher level language bindings to conform to the GObject method
call conventions.

All methods on #GIRepository also accept %NULL as an instance
parameter to mean this default repository, which is usually more
convenient for C.</doc>
        <source-position filename="girepository/girepository.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="688">The global singleton #GIRepository</doc>
          <type name="Repository" c:type="GIRepository*"/>
        </return-value>
      </function>
      <function name="get_option_group"
                c:identifier="g_irepository_get_option_group">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1762">Obtain the option group for girepository, it's used
by the dumper and for programs that wants to provide
introspection information</doc>
        <source-position filename="girepository/girepository.h" line="196"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1769">the option group</doc>
          <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
        </return-value>
      </function>
      <function name="get_search_path"
                c:identifier="g_irepository_get_search_path">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="253">Returns the current search path #GIRepository will use when loading
typelib files. The list is internal to #GIRepository and should not
be freed, nor should its string elements.</doc>
        <source-position filename="girepository/girepository.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="260">#GSList of strings</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="filename"/>
          </type>
        </return-value>
      </function>
      <function name="prepend_library_path"
                c:identifier="g_irepository_prepend_library_path">
        <source-position filename="girepository/girepository.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="prepend_search_path"
                c:identifier="g_irepository_prepend_search_path">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="237">Prepends @directory to the typelib search path.

See also: g_irepository_get_search_path().</doc>
        <source-position filename="girepository/girepository.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="239">directory name to prepend to the typelib
  search path</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="enumerate_versions"
              c:identifier="g_irepository_enumerate_versions">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1514">Obtain an unordered list of versions (either currently loaded or
available) for @namespace_ in this @repository.</doc>
        <source-position filename="girepository/girepository.h" line="129"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1523">the array of versions.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1516">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1518">GI namespace, e.g. "Gtk"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_error_domain"
              c:identifier="g_irepository_find_by_error_domain"
              version="1.30">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="938">Searches for the enum type corresponding to the given #GError
domain. Before calling this function for a particular namespace,
you must call g_irepository_require() once to load the namespace, or
otherwise ensure the namespace has already been loaded.</doc>
        <source-position filename="girepository/girepository.h" line="178"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="949">#GIEnumInfo representing metadata about @domain's
enum type, or %NULL</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="940">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="domain" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="942">a #GError domain</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_gtype" c:identifier="g_irepository_find_by_gtype">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="800">Searches all loaded namespaces for a particular #GType.  Note that
in order to locate the metadata, the namespace corresponding to
the type must first have been loaded.  There is currently no
mechanism for determining the namespace which corresponds to an
arbitrary GType - thus, this function will operate most reliably
when you know the GType to originate from be from a loaded namespace.</doc>
        <source-position filename="girepository/girepository.h" line="159"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="813">#GIBaseInfo representing metadata about @type, or %NULL</doc>
          <type name="BaseInfo" c:type="GIBaseInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="802">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="gtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="804">GType to search for</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_name" c:identifier="g_irepository_find_by_name">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="878">Searches for a particular entry in a namespace.  Before calling
this function for a particular namespace, you must call
g_irepository_require() once to load the namespace, or otherwise
ensure the namespace has already been loaded.</doc>
        <source-position filename="girepository/girepository.h" line="124"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="890">#GIBaseInfo representing metadata about @name, or %NULL</doc>
          <type name="BaseInfo" c:type="GIBaseInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="880">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="882">Namespace which will be searched</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="883">Entry name to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_c_prefix" c:identifier="g_irepository_get_c_prefix">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1182">This function returns the "C prefix", or the C level namespace
associated with the given introspection namespace.  Each C symbol
starts with this prefix, as well each #GType in the library.

Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</doc>
        <source-position filename="girepository/girepository.h" line="188"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1195">C namespace prefix, or %NULL if none associated</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1184">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1186">Namespace to inspect</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dependencies"
              c:identifier="g_irepository_get_dependencies">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="541">Retrieves all (transitive) versioned dependencies for
@namespace_.

The strings are of the form `namespace-version`.

Note: @namespace_ must have already been loaded using a function
such as g_irepository_require() before calling this function.

To get only the immediate dependencies for @namespace_, use
g_irepository_get_immediate_dependencies().</doc>
        <source-position filename="girepository/girepository.h" line="152"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="558">all versioned
  dependencies</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="543">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="545">Namespace of interest</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_immediate_dependencies"
              c:identifier="g_irepository_get_immediate_dependencies"
              version="1.44">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="458">Return an array of the immediate versioned dependencies for @namespace_.
Returned strings are of the form `namespace-version`.

Note: @namespace_ must have already been loaded using a function
such as g_irepository_require() before calling this function.

To get the transitive closure of dependencies for @namespace_, use
g_irepository_get_dependencies().</doc>
        <source-position filename="girepository/girepository.h" line="148"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="473">Zero-terminated string array of immediate versioned
  dependencies</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="460">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="462">Namespace of interest</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info" c:identifier="g_irepository_get_info">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="728">This function returns a particular metadata entry in the
given namespace @namespace_.  The namespace must have
already been loaded before calling this function.
See g_irepository_get_n_infos() to find the maximum number of
entries.</doc>
        <source-position filename="girepository/girepository.h" line="173"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="741">#GIBaseInfo containing metadata</doc>
          <type name="BaseInfo" c:type="GIBaseInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="730">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="732">Namespace to inspect</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="733">0-based offset into namespace metadata for entry</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_loaded_namespaces"
              c:identifier="g_irepository_get_loaded_namespaces">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1080">Return the list of currently loaded namespaces.</doc>
        <source-position filename="girepository/girepository.h" line="156"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1087">List of namespaces</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1082">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_infos" c:identifier="g_irepository_get_n_infos">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="696">This function returns the number of metadata entries in
given namespace @namespace_.  The namespace must have
already been loaded before calling this function.</doc>
        <source-position filename="girepository/girepository.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="706">number of metadata entries</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="698">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="700">Namespace to inspect</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_object_gtype_interfaces"
              c:identifier="g_irepository_get_object_gtype_interfaces"
              version="1.62">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="991">Look up the implemented interfaces for @gtype.  This function
cannot fail per se; but for a totally "unknown" #GType, it may
return 0 implemented interfaces.

The semantics of this function are designed for a dynamic binding,
where in certain cases (such as a function which returns an
interface which may have "hidden" implementation classes), not all
data may be statically known, and will have to be determined from
the #GType of the object.  An example is g_file_new_for_path()
returning a concrete class of #GLocalFile, which is a #GType we
see at runtime, but not statically.</doc>
        <source-position filename="girepository/girepository.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="993">a #GIRepository, or %NULL for the default repository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="gtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="994">a #GType whose fundamental type is G_TYPE_OBJECT</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="n_interfaces_out"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="995">Number of interfaces</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="interfaces_out"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="996">Interfaces for @gtype</doc>
            <array length="1" zero-terminated="0" c:type="GIInterfaceInfo***">
              <type name="InterfaceInfo" c:type="GIInterfaceInfo**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="get_shared_library"
              c:identifier="g_irepository_get_shared_library">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1143">This function returns a comma-separated list of paths to the
shared C libraries associated with the given namespace @namespace_.
There may be no shared library path associated, in which case this
function will return %NULL.

Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</doc>
        <source-position filename="girepository/girepository.h" line="185"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1157">Comma-separated list of paths to shared libraries,
  or %NULL if none are associated</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1145">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1147">Namespace to inspect</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_typelib_path"
              c:identifier="g_irepository_get_typelib_path">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1219">If namespace @namespace_ is loaded, return the full path to the
.typelib file it was loaded from.  If the typelib for
namespace @namespace_ was included in a shared library, return
the special string "&amp;lt;builtin&amp;gt;".</doc>
        <source-position filename="girepository/girepository.h" line="182"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1230">Filesystem path (or $lt;builtin$gt;) if successful, %NULL if namespace is not loaded</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1221">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1223">GI namespace to use, e.g. "Gtk"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_version" c:identifier="g_irepository_get_version">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1110">This function returns the loaded version associated with the given
namespace @namespace_.

Note: The namespace must have already been loaded using a function
such as g_irepository_require() before calling this function.</doc>
        <source-position filename="girepository/girepository.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1122">Loaded version</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1112">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1114">Namespace to inspect</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_registered" c:identifier="g_irepository_is_registered">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="649">Check whether a particular namespace (and optionally, a specific
version thereof) is currently loaded.  This function is likely to
only be useful in unusual circumstances; in order to act upon
metadata in the namespace, you should call g_irepository_require()
instead which will ensure the namespace is loaded, and return as
quickly as this function will if it has already been loaded.</doc>
        <source-position filename="girepository/girepository.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="663">%TRUE if namespace-version is loaded, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="651">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="653">Namespace of interest</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="version"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="654">Required version, may be %NULL for latest</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_typelib"
              c:identifier="g_irepository_load_typelib"
              throws="1">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="603">TODO</doc>
        <source-position filename="girepository/girepository.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="605">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="typelib" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="607">TODO</doc>
            <type name="Typelib" c:type="GITypelib*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="608">TODO</doc>
            <type name="RepositoryLoadFlags" c:type="GIRepositoryLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="require" c:identifier="g_irepository_require" throws="1">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1673">Force the namespace @namespace_ to be loaded if it isn't already.
If @namespace_ is not loaded, this function will search for a
".typelib" file using the repository search path.  In addition, a
version @version of namespace may be specified.  If @version is
not specified, the latest will be used.</doc>
        <source-position filename="girepository/girepository.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1688">a pointer to the #GITypelib if successful, %NULL otherwise</doc>
          <type name="Typelib" c:type="GITypelib*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1675">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1677">GI namespace to use, e.g. "Gtk"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="version"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1678">Version of namespace, may be %NULL for latest</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1679">Set of %GIRepositoryLoadFlags, may be 0</doc>
            <type name="RepositoryLoadFlags" c:type="GIRepositoryLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="require_private"
              c:identifier="g_irepository_require_private"
              throws="1">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1706">Force the namespace @namespace_ to be loaded if it isn't already.
If @namespace_ is not loaded, this function will search for a
".typelib" file within the private directory only. In addition, a
version @version of namespace should be specified.  If @version is
not specified, the latest will be used.</doc>
        <source-position filename="girepository/girepository.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1722">a pointer to the #GITypelib if successful, %NULL otherwise</doc>
          <type name="Typelib" c:type="GITypelib*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1708">A #GIRepository or %NULL for the singleton
  process-global default #GIRepository</doc>
            <type name="Repository" c:type="GIRepository*"/>
          </instance-parameter>
          <parameter name="typelib_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1710">Private directory where to find the requested typelib</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="namespace_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1711">GI namespace to use, e.g. "Gtk"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="version"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1712">Version of namespace, may be %NULL for latest</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="girepository/girepository.c"
                 line="1713">Set of %GIRepositoryLoadFlags, may be 0</doc>
            <type name="RepositoryLoadFlags" c:type="GIRepositoryLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RepositoryPrivate" c:type="GIRepositoryPrivate*"/>
      </field>
    </class>
    <record name="RepositoryClass"
            c:type="GIRepositoryClass"
            glib:is-gtype-struct-for="Repository">
      <source-position filename="girepository/girepository.h" line="82"/>
      <field name="parent" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="RepositoryError" c:type="GIRepositoryError">
      <doc xml:space="preserve"
           filename="girepository/girepository.h"
           line="202">An error code used with #G_IREPOSITORY_ERROR in a #GError returned
from a #GIRepository routine.</doc>
      <source-position filename="girepository/girepository.h" line="221"/>
      <member name="typelib_not_found"
              value="0"
              c:identifier="G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND">
        <doc xml:space="preserve"
             filename="girepository/girepository.h"
             line="204">the typelib could not be found.</doc>
      </member>
      <member name="namespace_mismatch"
              value="1"
              c:identifier="G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH">
        <doc xml:space="preserve"
             filename="girepository/girepository.h"
             line="205">the namespace does not match the
  requested namespace.</doc>
      </member>
      <member name="namespace_version_conflict"
              value="2"
              c:identifier="G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT">
        <doc xml:space="preserve"
             filename="girepository/girepository.h"
             line="207">the version of the
  typelib does not match the requested version.</doc>
      </member>
      <member name="library_not_found"
              value="3"
              c:identifier="G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND">
        <doc xml:space="preserve"
             filename="girepository/girepository.h"
             line="209">the library used by the typelib
  could not be found.</doc>
      </member>
    </enumeration>
    <bitfield name="RepositoryLoadFlags" c:type="GIRepositoryLoadFlags">
      <doc xml:space="preserve"
           filename="girepository/girepository.h"
           line="84">Flags that control how a typelib is loaded.</doc>
      <source-position filename="girepository/girepository.h" line="93"/>
      <member name="irepository_load_flag_lazy"
              value="1"
              c:identifier="G_IREPOSITORY_LOAD_FLAG_LAZY">
        <doc xml:space="preserve"
             filename="girepository/girepository.h"
             line="86">Lazily load the typelib.</doc>
      </member>
    </bitfield>
    <record name="RepositoryPrivate"
            c:type="GIRepositoryPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="girepository/girepository.h" line="69"/>
    </record>
    <enumeration name="ScopeType" c:type="GIScopeType">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="338">Scope type of a #GIArgInfo representing callback, determines how the
callback is invoked and is used to decided when the invoke structs
can be freed.</doc>
      <source-position filename="girepository/gitypes.h" line="361"/>
      <member name="invalid" value="0" c:identifier="GI_SCOPE_TYPE_INVALID">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="340">The argument is not of callback type.</doc>
      </member>
      <member name="call" value="1" c:identifier="GI_SCOPE_TYPE_CALL">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="341">The callback and associated user_data is only
  used during the call to this function.</doc>
      </member>
      <member name="async" value="2" c:identifier="GI_SCOPE_TYPE_ASYNC">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="343">The callback and associated user_data is
  only used until the callback is invoked, and the callback.
  is invoked always exactly once.</doc>
      </member>
      <member name="notified" value="3" c:identifier="GI_SCOPE_TYPE_NOTIFIED">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="346">The callback and associated
  user_data is used until the caller is notfied via the destroy_notify.</doc>
      </member>
      <member name="forever" value="4" c:identifier="GI_SCOPE_TYPE_FOREVER">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="348">The callback and associated user_data is
  used until the process terminates</doc>
      </member>
    </enumeration>
    <function-macro name="TYPE_TAG_IS_BASIC"
                    c:identifier="G_TYPE_TAG_IS_BASIC"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="1.72">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.h"
           line="43">Checks if @tag is a basic type.</doc>
      <doc-deprecated xml:space="preserve">Use GI_TYPE_TAG_IS_BASIC() instead</doc-deprecated>
      <source-position filename="girepository/gitypeinfo.h" line="51"/>
      <parameters>
        <parameter name="tag">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.h"
               line="45">a type tag</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TYPE_TAG_IS_CONTAINER"
                    c:identifier="GI_TYPE_TAG_IS_CONTAINER"
                    version="1.72"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.h"
           line="93">Checks if @tag is a container type. That is, a type which may have a nonnull
return from g_type_info_get_param_type().</doc>
      <source-position filename="girepository/gitypeinfo.h" line="102"/>
      <parameters>
        <parameter name="tag">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.h"
               line="95">a type tag</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TYPE_TAG_IS_NUMERIC"
                    c:identifier="GI_TYPE_TAG_IS_NUMERIC"
                    version="1.72"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.h"
           line="83">Checks if @tag is a numeric type. That is, integer or floating point.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="71"/>
      <parameters>
        <parameter name="tag">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.h"
               line="85">a type tag</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="TYPE_TAG_N_TYPES" value="22" c:type="GI_TYPE_TAG_N_TYPES">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="420">TODO</doc>
      <source-position filename="girepository/gitypes.h" line="425"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="Transfer" c:type="GITransfer">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="292">The transfer is the exchange of data between two parts, from the callee to
the caller. The callee is either a function/method/signal or an
object/interface where a property is defined. The caller is the side
accessing a property or calling a function.
#GITransfer specifies who's responsible for freeing the resources after the
ownership transfer is complete. In case of a containing type such as a list,
an array or a hash table the container itself is specified differently from
the items within the container itself. Each container is freed differently,
check the documentation for the types themselves for information on how to
free them.</doc>
      <source-position filename="girepository/gitypes.h" line="322"/>
      <member name="nothing" value="0" c:identifier="GI_TRANSFER_NOTHING">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="294">transfer nothing from the callee (function or the type
instance the property belongs to) to the caller. The callee retains the
ownership of the transfer and the caller doesn't need to do anything to free
up the resources of this transfer.</doc>
      </member>
      <member name="container" value="1" c:identifier="GI_TRANSFER_CONTAINER">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="298">transfer the container (list, array, hash table) from
the callee to the caller. The callee retains the ownership of the individual
items in the container and the caller has to free up the container resources
(g_list_free()/g_hash_table_destroy() etc) of this transfer.</doc>
      </member>
      <member name="everything"
              value="2"
              c:identifier="GI_TRANSFER_EVERYTHING">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="302">transfer everything, eg the container and its
contents from the callee to the caller. This is the case when the callee
creates a copy of all the data it returns. The caller is responsible for
cleaning up the container and item resources of this transfer.</doc>
      </member>
    </enumeration>
    <enumeration name="TypeTag" c:type="GITypeTag">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="363">The type tag of a #GITypeInfo.</doc>
      <source-position filename="girepository/gitypes.h" line="418"/>
      <member name="void" value="0" c:identifier="GI_TYPE_TAG_VOID">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="365">void</doc>
      </member>
      <member name="boolean" value="1" c:identifier="GI_TYPE_TAG_BOOLEAN">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="366">boolean</doc>
      </member>
      <member name="int8" value="2" c:identifier="GI_TYPE_TAG_INT8">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="367">8-bit signed integer</doc>
      </member>
      <member name="uint8" value="3" c:identifier="GI_TYPE_TAG_UINT8">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="368">8-bit unsigned integer</doc>
      </member>
      <member name="int16" value="4" c:identifier="GI_TYPE_TAG_INT16">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="369">16-bit signed integer</doc>
      </member>
      <member name="uint16" value="5" c:identifier="GI_TYPE_TAG_UINT16">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="370">16-bit unsigned integer</doc>
      </member>
      <member name="int32" value="6" c:identifier="GI_TYPE_TAG_INT32">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="371">32-bit signed integer</doc>
      </member>
      <member name="uint32" value="7" c:identifier="GI_TYPE_TAG_UINT32">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="372">32-bit unsigned integer</doc>
      </member>
      <member name="int64" value="8" c:identifier="GI_TYPE_TAG_INT64">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="373">64-bit signed integer</doc>
      </member>
      <member name="uint64" value="9" c:identifier="GI_TYPE_TAG_UINT64">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="374">64-bit unsigned integer</doc>
      </member>
      <member name="float" value="10" c:identifier="GI_TYPE_TAG_FLOAT">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="375">float</doc>
      </member>
      <member name="double" value="11" c:identifier="GI_TYPE_TAG_DOUBLE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="376">double floating point</doc>
      </member>
      <member name="gtype" value="12" c:identifier="GI_TYPE_TAG_GTYPE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="377">a #GType</doc>
      </member>
      <member name="utf8" value="13" c:identifier="GI_TYPE_TAG_UTF8">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="378">a UTF-8 encoded string</doc>
      </member>
      <member name="filename" value="14" c:identifier="GI_TYPE_TAG_FILENAME">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="379">a filename, encoded in the same encoding
  as the native filesystem is using.</doc>
      </member>
      <member name="array" value="15" c:identifier="GI_TYPE_TAG_ARRAY">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="381">an array</doc>
      </member>
      <member name="interface" value="16" c:identifier="GI_TYPE_TAG_INTERFACE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="382">an extended interface object</doc>
      </member>
      <member name="glist" value="17" c:identifier="GI_TYPE_TAG_GLIST">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="383">a #GList</doc>
      </member>
      <member name="gslist" value="18" c:identifier="GI_TYPE_TAG_GSLIST">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="384">a #GSList</doc>
      </member>
      <member name="ghash" value="19" c:identifier="GI_TYPE_TAG_GHASH">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="385">a #GHashTable</doc>
      </member>
      <member name="error" value="20" c:identifier="GI_TYPE_TAG_ERROR">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="386">a #GError</doc>
      </member>
      <member name="unichar" value="21" c:identifier="GI_TYPE_TAG_UNICHAR">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="387">Unicode character</doc>
      </member>
    </enumeration>
    <record name="Typelib" c:type="GITypelib" disguised="1" opaque="1">
      <doc xml:space="preserve"
           filename="girepository/gitypelib.h"
           line="36">TODO</doc>
      <source-position filename="girepository/gitypelib.h" line="49"/>
      <method name="free" c:identifier="g_typelib_free">
        <source-position filename="girepository/gitypelib.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="typelib" transfer-ownership="none">
            <type name="Typelib" c:type="GITypelib*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_namespace" c:identifier="g_typelib_get_namespace">
        <source-position filename="girepository/gitypelib.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="typelib" transfer-ownership="none">
            <type name="Typelib" c:type="GITypelib*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="symbol" c:identifier="g_typelib_symbol">
        <source-position filename="girepository/gitypelib.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="typelib" transfer-ownership="none">
            <type name="Typelib" c:type="GITypelib*"/>
          </instance-parameter>
          <parameter name="symbol_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="symbol"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new_from_const_memory"
                c:identifier="g_typelib_new_from_const_memory"
                introspectable="0"
                throws="1">
        <source-position filename="girepository/gitypelib.h" line="57"/>
        <return-value>
          <type name="Typelib" c:type="GITypelib*"/>
        </return-value>
        <parameters>
          <parameter name="memory" transfer-ownership="none">
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_from_mapped_file"
                c:identifier="g_typelib_new_from_mapped_file"
                introspectable="0"
                throws="1">
        <source-position filename="girepository/gitypelib.h" line="62"/>
        <return-value>
          <type name="Typelib" c:type="GITypelib*"/>
        </return-value>
        <parameters>
          <parameter name="mfile" transfer-ownership="none">
            <type name="GLib.MappedFile" c:type="GMappedFile*"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_from_memory"
                c:identifier="g_typelib_new_from_memory"
                introspectable="0"
                throws="1">
        <source-position filename="girepository/gitypelib.h" line="52"/>
        <return-value>
          <type name="Typelib" c:type="GITypelib*"/>
        </return-value>
        <parameters>
          <parameter name="memory" transfer-ownership="none">
            <type name="guint8" c:type="guint8*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="UnresolvedInfo"
            c:type="GIUnresolvedInfo"
            disguised="1"
            opaque="1">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="182">Represents a unresolved type in a typelib.</doc>
      <source-position filename="girepository/gitypes.h" line="187"/>
    </record>
    <bitfield name="VFuncInfoFlags" c:type="GIVFuncInfoFlags">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="467">Flags of a #GIVFuncInfo struct.</doc>
      <source-position filename="girepository/gitypes.h" line="482"/>
      <member name="must_chain_up"
              value="1"
              c:identifier="GI_VFUNC_MUST_CHAIN_UP">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="469">chains up to the parent type</doc>
      </member>
      <member name="must_override"
              value="2"
              c:identifier="GI_VFUNC_MUST_OVERRIDE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="470">overrides</doc>
      </member>
      <member name="must_not_override"
              value="4"
              c:identifier="GI_VFUNC_MUST_NOT_OVERRIDE">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="471">does not override</doc>
      </member>
      <member name="throws" value="8" c:identifier="GI_VFUNC_THROWS">
        <doc xml:space="preserve"
             filename="girepository/gitypes.h"
             line="472">Includes a #GError</doc>
      </member>
    </bitfield>
    <function name="arg_info_get_closure"
              c:identifier="g_arg_info_get_closure">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="244">Obtain the index of the user data argument. This is only valid
for arguments which are callbacks.</doc>
      <source-position filename="girepository/giarginfo.h" line="69"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="251">index of the user data argument or -1 if there is none</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="246">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_get_destroy"
              c:identifier="g_arg_info_get_destroy">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="267">Obtains the index of the #GDestroyNotify argument. This is only valid
for arguments which are callbacks.</doc>
      <source-position filename="girepository/giarginfo.h" line="72"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="274">index of the #GDestroyNotify argument or -1 if there is none</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="269">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_get_direction"
              c:identifier="g_arg_info_get_direction">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="43">Obtain the direction of the argument. Check #GIDirection for possible
direction values.</doc>
      <source-position filename="girepository/giarginfo.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="50">the direction</doc>
        <type name="Direction" c:type="GIDirection"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="45">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_get_ownership_transfer"
              c:identifier="g_arg_info_get_ownership_transfer">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="191">Obtain the ownership transfer for this argument.
#GITransfer contains a list of possible values.</doc>
      <source-position filename="girepository/giarginfo.h" line="63"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="198">the transfer</doc>
        <type name="Transfer" c:type="GITransfer"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="193">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_get_scope" c:identifier="g_arg_info_get_scope">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="219">Obtain the scope type for this argument. The scope type explains
how a callback is going to be invoked, most importantly when
the resources required to invoke it can be freed.
#GIScopeType contains a list of possible values.</doc>
      <source-position filename="girepository/giarginfo.h" line="66"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="228">the scope type</doc>
        <type name="ScopeType" c:type="GIScopeType"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="221">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_get_type" c:identifier="g_arg_info_get_type">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="290">Obtain the type information for @info.</doc>
      <source-position filename="girepository/giarginfo.h" line="75"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="296">the #GITypeInfo holding the type
  information for @info, free it with g_base_info_unref()
  when done.</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="292">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_is_caller_allocates"
              c:identifier="g_arg_info_is_caller_allocates">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="94">Obtain if the argument is a pointer to a struct or object that will
receive an output of a function.  The default assumption for
%GI_DIRECTION_OUT arguments which have allocation is that the
callee allocates; if this is %TRUE, then the caller must allocate.</doc>
      <source-position filename="girepository/giarginfo.h" line="54"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="103">%TRUE if caller is required to have allocated the argument</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="96">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_is_optional"
              c:identifier="g_arg_info_is_optional">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="119">Obtain if the argument is optional.  For 'out' arguments this means
that you can pass %NULL in order to ignore the result.</doc>
      <source-position filename="girepository/giarginfo.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="126">%TRUE if it is an optional argument</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="121">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_is_return_value"
              c:identifier="g_arg_info_is_return_value">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="71">Obtain if the argument is a return value. It can either be a
parameter or a return value.</doc>
      <source-position filename="girepository/giarginfo.h" line="48"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="78">%TRUE if it is a return value</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="73">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_is_skip"
              c:identifier="g_arg_info_is_skip"
              version="1.30">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="168">Obtain if an argument is only useful in C.</doc>
      <source-position filename="girepository/giarginfo.h" line="60"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="174">%TRUE if argument is only useful in C.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="170">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_load_type" c:identifier="g_arg_info_load_type">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="311">Obtain information about a the type of given argument @info; this
function is a variant of g_arg_info_get_type() designed for stack
allocation.

The initialized @type must not be referenced after @info is deallocated.</doc>
      <source-position filename="girepository/giarginfo.h" line="78"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="313">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
        <parameter name="type"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="314">Initialized with information about type of @info</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="arg_info_may_be_null"
              c:identifier="g_arg_info_may_be_null">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="142">Obtain if the type of the argument includes the possibility of %NULL.
For 'in' values this means that %NULL is a valid value.  For 'out'
values, this means that %NULL may be returned.

See also g_arg_info_is_optional().</doc>
      <source-position filename="girepository/giarginfo.h" line="57"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giarginfo.c"
             line="152">%TRUE if the value may be %NULL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giarginfo.c"
               line="144">a #GIArgInfo</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_can_throw_gerror"
              c:identifier="g_callable_info_can_throw_gerror"
              version="1.34">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="81">TODO</doc>
      <source-position filename="girepository/gicallableinfo.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="88">%TRUE if this #GICallableInfo can throw a #GError</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="83">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_get_arg"
              c:identifier="g_callable_info_get_arg">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="337">Obtain information about a particular argument of this callable.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="83"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="344">the #GIArgInfo. Free it with
g_base_info_unref() when done.</doc>
        <type name="ArgInfo" c:type="GIArgInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="339">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="340">the argument index to fetch</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_get_caller_owns"
              c:identifier="g_callable_info_get_caller_owns">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="258">See whether the caller owns the return value of this callable.
#GITransfer contains a list of possible transfer values.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="71"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="265">the transfer mode for the return value of the callable</doc>
        <type name="Transfer" c:type="GITransfer"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="260">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_get_instance_ownership_transfer"
              c:identifier="g_callable_info_get_instance_ownership_transfer"
              version="1.42">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="286">Obtains the ownership transfer for the instance argument.
#GITransfer contains a list of possible transfer values.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="104"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="294">the transfer mode of the instance argument</doc>
        <type name="Transfer" c:type="GITransfer"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="288">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_get_n_args"
              c:identifier="g_callable_info_get_n_args">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="313">Obtain the number of arguments (both IN and OUT) for this callable.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="80"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="319">The number of arguments this callable expects.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="315">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_get_return_attribute"
              c:identifier="g_callable_info_get_return_attribute">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="396">Retrieve an arbitrary attribute associated with the return value.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="61"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="403">The value of the attribute, or %NULL if no such attribute exists</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="398">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="399">a freeform string naming an attribute</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_get_return_type"
              c:identifier="g_callable_info_get_return_type">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="164">Obtain the return type of a callable item as a #GITypeInfo.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="54"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="170">the #GITypeInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="166">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_invoke"
              c:identifier="g_callable_info_invoke"
              throws="1">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="581">TODO</doc>
      <source-position filename="girepository/gicallableinfo.h" line="92"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="583">TODO</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
        <parameter name="function"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="584">TODO</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="in_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="585">TODO</doc>
          <array length="3" zero-terminated="0" c:type="const GIArgument*">
            <type name="Argument" c:type="GIArgument"/>
          </array>
        </parameter>
        <parameter name="n_in_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="586">TODO</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="out_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="587">TODO</doc>
          <array length="5" zero-terminated="0" c:type="const GIArgument*">
            <type name="Argument" c:type="GIArgument"/>
          </array>
        </parameter>
        <parameter name="n_out_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="588">TODO</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="589">TODO</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
        <parameter name="is_method" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="590">TODO</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="throws" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="591">TODO</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_is_method"
              c:identifier="g_callable_info_is_method"
              version="1.34">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="126">Determines if the callable info is a method. For #GIVFuncInfo&lt;!-- --&gt;s,
#GICallbackInfo&lt;!-- --&gt;s, and #GISignalInfo&lt;!-- --&gt;s,
this is always true. Otherwise, this looks at the %GI_FUNCTION_IS_METHOD
flag on the #GIFunctionInfo.

Concretely, this function returns whether g_callable_info_get_n_args()
matches the number of arguments in the raw C method. For methods, there
is one more C argument than is exposed by introspection: the "self"
or "this" object.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="48"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="140">%TRUE if @info is a method, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="128">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_iterate_return_attributes"
              c:identifier="g_callable_info_iterate_return_attributes">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="420">Iterate over all attributes associated with the return value.  The
iterator structure is typically stack allocated, and must have its
first member initialized to %NULL.

Both the @name and @value should be treated as constants
and must not be freed.

See g_base_info_iterate_attributes() for an example of how to use a
similar API.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="65"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="437">%TRUE if there are more attributes</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="422">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
        <parameter name="iterator"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="423">a #GIAttributeIter structure, must be initialized; see below</doc>
          <type name="AttributeIter" c:type="GIAttributeIter*"/>
        </parameter>
        <parameter name="name"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="424">Returned name, must not be freed</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="value"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="425">Returned name, must not be freed</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_load_arg"
              c:identifier="g_callable_info_load_arg">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="365">Obtain information about a particular argument of this callable; this
function is a variant of g_callable_info_get_arg() designed for stack
allocation.

The initialized @arg must not be referenced after @info is deallocated.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="87"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="367">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="368">the argument index to fetch</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="arg"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="369">Initialize with argument number @n</doc>
          <type name="ArgInfo" c:type="GIArgInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_load_return_type"
              c:identifier="g_callable_info_load_return_type">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="188">Obtain information about a return value of callable; this
function is a variant of g_callable_info_get_return_type() designed for stack
allocation.

The initialized @type must not be referenced after @info is deallocated.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="57"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="190">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
        <parameter name="type"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="191">Initialized with return type of @info</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_may_return_null"
              c:identifier="g_callable_info_may_return_null">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="214">See if a callable could return %NULL.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="74"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="220">%TRUE if callable could return %NULL</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="216">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="callable_info_skip_return"
              c:identifier="g_callable_info_skip_return">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="236">See if a callable's return value is only useful in C.</doc>
      <source-position filename="girepository/gicallableinfo.h" line="77"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gicallableinfo.c"
             line="242">%TRUE if return value is only useful in C.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gicallableinfo.c"
               line="238">a #GICallableInfo</doc>
          <type name="CallableInfo" c:type="GICallableInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cclosure_marshal_generic"
              c:identifier="gi_cclosure_marshal_generic">
      <source-position filename="girepository/girepository.h" line="239"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_gvalue" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="constant_info_free_value"
              c:identifier="g_constant_info_free_value"
              version="1.32"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giconstantinfo.c"
           line="68">Free the value returned from g_constant_info_get_value().</doc>
      <source-position filename="girepository/giconstantinfo.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giconstantinfo.c"
               line="70">a #GIConstantInfo</doc>
          <type name="ConstantInfo" c:type="GIConstantInfo*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giconstantinfo.c"
               line="71">the argument</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="constant_info_get_type"
              c:identifier="g_constant_info_get_type">
      <doc xml:space="preserve"
           filename="girepository/giconstantinfo.c"
           line="45">Obtain the type of the constant as a #GITypeInfo.</doc>
      <source-position filename="girepository/giconstantinfo.h" line="45"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giconstantinfo.c"
             line="51">the #GITypeInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giconstantinfo.c"
               line="47">a #GIConstantInfo</doc>
          <type name="ConstantInfo" c:type="GIConstantInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="constant_info_get_value"
              c:identifier="g_constant_info_get_value"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giconstantinfo.c"
           line="97">Obtain the value associated with the #GIConstantInfo and store it in the
@value parameter. @argument needs to be allocated before passing it in.
The size of the constant value stored in @argument will be returned.
Free the value with g_constant_info_free_value().</doc>
      <source-position filename="girepository/giconstantinfo.h" line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giconstantinfo.c"
             line="107">size of the constant</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giconstantinfo.c"
               line="99">a #GIConstantInfo</doc>
          <type name="ConstantInfo" c:type="GIConstantInfo*"/>
        </parameter>
        <parameter name="value"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giconstantinfo.c"
               line="100">an argument</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="enum_info_get_error_domain"
              c:identifier="g_enum_info_get_error_domain"
              version="1.30">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="67">Obtain the string form of the quark for the error domain associated with
this enum, if any.</doc>
      <source-position filename="girepository/gienuminfo.h" line="72"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="74">the string form of the error domain associated
with this enum, or %NULL.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="69">a #GIEnumInfo</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="enum_info_get_method"
              c:identifier="g_enum_info_get_method"
              version="1.30">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="146">Obtain an enum type method at index @n.</doc>
      <source-position filename="girepository/gienuminfo.h" line="65"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="153">the #GIFunctionInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="148">a #GIEnumInfo</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="149">index of method to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="enum_info_get_n_methods"
              c:identifier="g_enum_info_get_n_methods"
              version="1.30">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="123">Obtain the number of methods that this enum type has.</doc>
      <source-position filename="girepository/gienuminfo.h" line="62"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="129">number of methods</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="125">a #GIEnumInfo</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="enum_info_get_n_values"
              c:identifier="g_enum_info_get_n_values">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="45">Obtain the number of values this enumeration contains.</doc>
      <source-position filename="girepository/gienuminfo.h" line="55"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="51">the number of enumeration values</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="47">a #GIEnumInfo</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="enum_info_get_storage_type"
              c:identifier="g_enum_info_get_storage_type">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="180">Obtain the tag of the type used for the enum in the C ABI. This will
will be a signed or unsigned integral type.

Note that in the current implementation the width of the type is
computed correctly, but the signed or unsigned nature of the type
may not match the sign of the type used by the C compiler.</doc>
      <source-position filename="girepository/gienuminfo.h" line="69"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="191">the storage type for the enumeration</doc>
        <type name="TypeTag" c:type="GITypeTag"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="182">a #GIEnumInfo</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="enum_info_get_value" c:identifier="g_enum_info_get_value">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="95">Obtain a value for this enumeration.</doc>
      <source-position filename="girepository/gienuminfo.h" line="58"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="102">the enumeration value or %NULL if type tag is wrong,
free the struct with g_base_info_unref() when done.</doc>
        <type name="ValueInfo" c:type="GIValueInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="97">a #GIEnumInfo</doc>
          <type name="EnumInfo" c:type="GIEnumInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="98">index of value to fetch</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="field_info_get_field"
              c:identifier="g_field_info_get_field"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="161">Reads a field identified by a #GIFieldInfo from a C structure or
union.  This only handles fields of simple C types. It will fail
for a field of a composite type like a nested structure or union
even if that is actually readable.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="58"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifieldinfo.c"
             line="172">%TRUE if reading the field succeeded, otherwise %FALSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="field_info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="163">a #GIFieldInfo</doc>
          <type name="FieldInfo" c:type="GIFieldInfo*"/>
        </parameter>
        <parameter name="mem"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="164">pointer to a block of memory representing a C structure or union</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="165">a #GIArgument into which to store the value retrieved</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="field_info_get_flags"
              c:identifier="g_field_info_get_flags">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="48">Obtain the flags for this #GIFieldInfo. See #GIFieldInfoFlags for possible
flag values.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="46"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifieldinfo.c"
             line="55">the flags</doc>
        <type name="FieldInfoFlags" c:type="GIFieldInfoFlags"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="50">a #GIFieldInfo</doc>
          <type name="FieldInfo" c:type="GIFieldInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="field_info_get_offset"
              c:identifier="g_field_info_get_offset">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="103">Obtain the offset in bytes of the field member, this is relative
to the beginning of the struct or union.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifieldinfo.c"
             line="110">the field offset</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="105">a #GIFieldInfo</doc>
          <type name="FieldInfo" c:type="GIFieldInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="field_info_get_size" c:identifier="g_field_info_get_size">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="80">Obtain the size in bits of the field member, this is how
much space you need to allocate to store the field.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="49"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifieldinfo.c"
             line="87">the field size</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="82">a #GIFieldInfo</doc>
          <type name="FieldInfo" c:type="GIFieldInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="field_info_get_type" c:identifier="g_field_info_get_type">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="126">Obtain the type of a field as a #GITypeInfo.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="55"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gifieldinfo.c"
             line="132">the #GITypeInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="128">a #GIFieldInfo</doc>
          <type name="FieldInfo" c:type="GIFieldInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="field_info_set_field"
              c:identifier="g_field_info_set_field"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="353">Writes a field identified by a #GIFieldInfo to a C structure or
union.  This only handles fields of simple C types. It will fail
for a field of a composite type like a nested structure or union
even if that is actually writable. Note also that that it will refuse
to write fields where memory management would by required. A field
with a type such as 'char *' must be set with a setter function.</doc>
      <source-position filename="girepository/gifieldinfo.h" line="63"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifieldinfo.c"
             line="366">%TRUE if writing the field succeeded, otherwise %FALSE</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="field_info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="355">a #GIFieldInfo</doc>
          <type name="FieldInfo" c:type="GIFieldInfo*"/>
        </parameter>
        <parameter name="mem"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="356">pointer to a block of memory representing a C structure or union</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifieldinfo.c"
               line="357">a #GIArgument holding the value to store</doc>
          <type name="Argument" c:type="const GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="function_info_get_flags"
              c:identifier="g_function_info_get_flags">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="98">Obtain the #GIFunctionInfoFlags for the @info.</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="48"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.c"
             line="104">the flags</doc>
        <type name="FunctionInfoFlags" c:type="GIFunctionInfoFlags"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="100">a #GIFunctionInfo</doc>
          <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="function_info_get_property"
              c:identifier="g_function_info_get_property">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="143">Obtain the property associated with this #GIFunctionInfo.
Only #GIFunctionInfo with the flag %GI_FUNCTION_IS_GETTER or
%GI_FUNCTION_IS_SETTER have a property set. For other cases,
%NULL will be returned.</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="51"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.c"
             line="152">the property or %NULL if not set. Free it with
g_base_info_unref() when done.</doc>
        <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="145">a #GIFunctionInfo</doc>
          <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="function_info_get_symbol"
              c:identifier="g_function_info_get_symbol">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="73">Obtain the symbol of the function. The symbol is the name of the
exported function, suitable to be used as an argument to
g_module_symbol().</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.c"
             line="81">the symbol</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="75">a #GIFunctionInfo</doc>
          <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="function_info_get_vfunc"
              c:identifier="g_function_info_get_vfunc">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="184">Obtain the virtual function associated with this #GIFunctionInfo.
Only #GIFunctionInfo with the flag %GI_FUNCTION_WRAPS_VFUNC has
a virtual function set. For other cases, %NULL will be returned.</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="54"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.c"
             line="192">the virtual function or %NULL if not set.
Free it by calling g_base_info_unref() when done.</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="186">a #GIFunctionInfo</doc>
          <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="function_info_invoke"
              c:identifier="g_function_info_invoke"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="228">Invokes the function described in @info with the given
arguments. Note that inout parameters must appear in both
argument lists. This function uses dlsym() to obtain a pointer
to the function, so the library or shared object containing the
described function must either be linked to the caller, or must
have been g_module_symbol()&lt;!-- --&gt;ed before calling this function.</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="87"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.c"
             line="250">%TRUE if the function has been invoked, %FALSE if an
  error occurred.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="230">a #GIFunctionInfo describing the function to invoke</doc>
          <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
        </parameter>
        <parameter name="in_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="231">an array of #GIArgument&lt;!-- --&gt;s, one for each in
   parameter of @info. If there are no in parameter, @in_args
   can be %NULL</doc>
          <array length="2" zero-terminated="0" c:type="const GIArgument*">
            <type name="Argument" c:type="GIArgument"/>
          </array>
        </parameter>
        <parameter name="n_in_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="234">the length of the @in_args array</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="out_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="235">an array of #GIArgument&lt;!-- --&gt;s, one for each out
   parameter of @info. If there are no out parameters, @out_args
   may be %NULL</doc>
          <array length="4" zero-terminated="0" c:type="const GIArgument*">
            <type name="Argument" c:type="GIArgument"/>
          </array>
        </parameter>
        <parameter name="n_out_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="238">the length of the @out_args array</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gifunctioninfo.c"
               line="239">return location for the return value of the
   function.</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_major_version"
              c:identifier="gi_get_major_version"
              version="1.60">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="68">Returns the major version number of the girepository library.
(e.g. in version 1.58.2 this is 1.)</doc>
      <source-position filename="output/girepository/giversion.h" line="39"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giversion.c"
             line="74">the major version number of the girepository library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_micro_version"
              c:identifier="gi_get_micro_version"
              version="1.60">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="100">Returns the micro version number of the girepository library.
(e.g. in version 1.58.2 this is 2.)</doc>
      <source-position filename="output/girepository/giversion.h" line="43"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giversion.c"
             line="106">the micro version number of the girepository library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_minor_version"
              c:identifier="gi_get_minor_version"
              version="1.60">
      <doc xml:space="preserve"
           filename="girepository/giversion.c"
           line="84">Returns the minor version number of the girepository library.
(e.g. in version 1.58.2 this is 58.)</doc>
      <source-position filename="output/girepository/giversion.h" line="41"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giversion.c"
             line="90">the minor version number of the girepository library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <docsection name="giarginfo">
      <doc xml:space="preserve"
           filename="girepository/giarginfo.c"
           line="33">GIArgInfo represents an argument of a callable.

An argument is always part of a #GICallableInfo.</doc>
    </docsection>
    <docsection name="gicallableinfo">
      <doc xml:space="preserve"
           filename="girepository/gicallableinfo.c"
           line="36">GICallableInfo represents an entity which is callable.

Examples of callable are:

 - functions (#GIFunctionInfo)
 - virtual functions (#GIVFuncInfo)
 - callbacks (#GICallbackInfo).

A callable has a list of arguments (#GIArgInfo), a return type,
direction and a flag which decides if it returns null.</doc>
    </docsection>
    <docsection name="gicallbackinfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="61">GICallbackInfo represents a callback.</doc>
    </docsection>
    <docsection name="giconstantinfo">
      <doc xml:space="preserve"
           filename="girepository/giconstantinfo.c"
           line="32">GIConstantInfo represents a constant.

A constant has a type associated which can be obtained by calling
g_constant_info_get_type() and a value, which can be obtained by
calling g_constant_info_get_value().</doc>
    </docsection>
    <docsection name="gienuminfo">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="31">A GIEnumInfo represents an enumeration, and a GIValueInfo represents
a value in the enumeration.

The GIEnumInfo contains a set of values and a type.

The GIValueInfo is fetched by calling g_enum_info_get_value() on
a GIEnumInfo.</doc>
    </docsection>
    <docsection name="gifieldinfo">
      <doc xml:space="preserve"
           filename="girepository/gifieldinfo.c"
           line="32">A GIFieldInfo struct represents a field of a struct, union, or object.

The GIFieldInfo is fetched by calling g_struct_info_get_field(),
g_union_info_get_field() or g_object_info_get_field().

A field has a size, type and a struct offset asssociated and a set of flags,
which are currently #GI_FIELD_IS_READABLE or #GI_FIELD_IS_WRITABLE.

See also: #GIStructInfo, #GIUnionInfo, #GIObjectInfo</doc>
    </docsection>
    <docsection name="gifunctioninfo">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="33">GIFunctionInfo represents a function, method or constructor.

To find out what kind of entity a #GIFunctionInfo represents, call
g_function_info_get_flags().

See also #GICallableInfo for information on how to retreive arguments and
other metadata.</doc>
    </docsection>
    <docsection name="giinterfaceinfo">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="31">GIInterfaceInfo represents a #GInterface type.

A GInterface has methods, fields, properties, signals, interfaces, constants,
virtual functions and prerequisites.</doc>
    </docsection>
    <docsection name="giobjectinfo">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="31">GIObjectInfo represents a classed type.

Classed types in GType inherit from #GTypeInstance; the most common
type is #GObject.

A GIObjectInfo doesn't represent a specific instance of a classed type,
instead this represent the object type (eg class).

A GIObjectInfo has methods, fields, properties, signals, interfaces,
constants and virtual functions.</doc>
    </docsection>
    <docsection name="gipropertyinfo">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.c"
           line="31">GIPropertyInfo represents a property in a #GObject.

A property belongs to either a #GIObjectInfo or a #GIInterfaceInfo.</doc>
    </docsection>
    <docsection name="giregisteredtypeinfo">
      <doc xml:space="preserve"
           filename="girepository/giregisteredtypeinfo.c"
           line="33">GIRegisteredTypeInfo represents an entity with a GType associated.

Could be either a #GIEnumInfo, #GIInterfaceInfo, #GIObjectInfo,
#GIStructInfo or a #GIUnionInfo.

A registered type info struct has a name and a type function.

To get the name call g_registered_type_info_get_type_name().
Most users want to call g_registered_type_info_get_g_type() and don't worry
about the rest of the details.</doc>
    </docsection>
    <docsection name="gisignalinfo">
      <doc xml:space="preserve"
           filename="girepository/gisignalinfo.c"
           line="31">GISignalInfo represents a signal.

It's a sub-struct of #GICallableInfo and contains a set of flags and
a class closure.

See #GICallableInfo for information on how to retreive arguments
and other metadata from the signal.</doc>
    </docsection>
    <docsection name="gistructinfo">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="33">GIStructInfo represents a generic C structure type.

A structure has methods and fields.</doc>
    </docsection>
    <docsection name="gitypeinfo">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="31">GITypeInfo represents a type.

You can retrieve a type info from an argument (see #GIArgInfo), a
functions return value (see #GIFunctionInfo), a field (see
#GIFieldInfo), a property (see #GIPropertyInfo), a constant
(see #GIConstantInfo) or for a union discriminator (see #GIUnionInfo).

A type can either be a of a basic type which is a standard C primitive
type or an interface type. For interface types you need to call
g_type_info_get_interface() to get a reference to the base info for that
interface.</doc>
    </docsection>
    <docsection name="giunioninfo">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="31">GIUnionInfo represents a union type.

A union has methods and fields.  Unions can optionally have a
discriminator, which is a field deciding what type of real union
fields is valid for specified instance.</doc>
    </docsection>
    <docsection name="givalueinfo">
      <doc xml:space="preserve"
           filename="girepository/gitypes.h"
           line="125">GIValueInfo represents a value.</doc>
    </docsection>
    <docsection name="givfuncinfo">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="33">GIVfuncInfo represents a virtual function.

A virtual function is a callable object that belongs to either a
#GIObjectInfo or a #GIInterfaceInfo.</doc>
    </docsection>
    <function name="info_new" c:identifier="g_info_new">
      <doc xml:space="preserve"
           filename="girepository/gibaseinfo.c"
           line="76">TODO</doc>
      <source-position filename="girepository/gibaseinfo.h" line="95"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gibaseinfo.c"
             line="85">TODO</doc>
        <type name="BaseInfo" c:type="GIBaseInfo*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="78">TODO</doc>
          <type name="InfoType" c:type="GIInfoType"/>
        </parameter>
        <parameter name="container" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="79">TODO</doc>
          <type name="BaseInfo" c:type="GIBaseInfo*"/>
        </parameter>
        <parameter name="typelib" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="80">TODO</doc>
          <type name="Typelib" c:type="GITypelib*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gibaseinfo.c"
               line="81">TODO</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="info_type_to_string" c:identifier="g_info_type_to_string">
      <doc xml:space="preserve"
           filename="girepository/girepository.c"
           line="1852">Obtain a string representation of @type</doc>
      <source-position filename="girepository/gitypeinfo.h" line="109"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1858">the string</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1854">the info type</doc>
          <type name="InfoType" c:type="GIInfoType"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_find_method"
              c:identifier="g_interface_info_find_method">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="204">Obtain a method of the interface type given a @name. %NULL will be
returned if there's no method available with that name.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="66"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="212">the #GIFunctionInfo or %NULL if none found.
Free the struct by calling g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="206">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="207">name of method to obtain</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_find_signal"
              c:identifier="g_interface_info_find_signal"
              version="1.34">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="288">TODO</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="77"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="295">Info for the signal with name @name in @info, or
%NULL on failure.</doc>
        <type name="SignalInfo" c:type="GISignalInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="290">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="291">Name of signal</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_find_vfunc"
              c:identifier="g_interface_info_find_vfunc">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="380">Locate a virtual function slot with name @name. See the documentation
for g_object_info_find_vfunc() for more information on virtuals.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="88"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="388">the #GIVFuncInfo, or %NULL. Free it with
g_base_info_unref() when done.</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="382">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="383">The name of a virtual function to find.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_constant"
              c:identifier="g_interface_info_get_constant">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="437">Obtain an interface type constant at index @n.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="95"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="444">the #GIConstantInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="ConstantInfo" c:type="GIConstantInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="439">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="440">index of constant to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_iface_struct"
              c:identifier="g_interface_info_get_iface_struct">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="474">Returns the layout C structure associated with this #GInterface.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="100"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="480">the #GIStructInfo or %NULL. Free it with
g_base_info_unref() when done.</doc>
        <type name="StructInfo" c:type="GIStructInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="476">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_method"
              c:identifier="g_interface_info_get_method">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="170">Obtain an interface type method at index @n.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="62"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="177">the #GIFunctionInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="172">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="173">index of method to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_n_constants"
              c:identifier="g_interface_info_get_n_constants">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="415">Obtain the number of constants that this interface type has.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="92"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="421">number of constants</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="417">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_n_methods"
              c:identifier="g_interface_info_get_n_methods">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="148">Obtain the number of methods that this interface type has.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="59"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="154">number of methods</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="150">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_n_prerequisites"
              c:identifier="g_interface_info_get_n_prerequisites">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="42">Obtain the number of prerequisites for this interface type.
A prerequisites is another interface that needs to be implemented for
interface, similar to an base class for GObjects.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="50">number of prerequisites</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="44">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_n_properties"
              c:identifier="g_interface_info_get_n_properties">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="93">Obtain the number of properties that this interface type has.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="99">number of properties</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="95">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_n_signals"
              c:identifier="g_interface_info_get_n_signals">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="231">Obtain the number of signals that this interface type has.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="70"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="237">number of signals</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="233">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_n_vfuncs"
              c:identifier="g_interface_info_get_n_vfuncs">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="322">Obtain the number of virtual functions that this interface type has.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="81"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="328">number of virtual functions</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="324">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_prerequisite"
              c:identifier="g_interface_info_get_prerequisite">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="66">Obtain an interface type prerequisites index @n.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="73">the prerequisites as a #GIBaseInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="BaseInfo" c:type="GIBaseInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="68">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="69">index of prerequisites to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_property"
              c:identifier="g_interface_info_get_property">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="115">Obtain an interface type property at index @n.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="55"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="122">the #GIPropertyInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="117">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="118">index of property to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_signal"
              c:identifier="g_interface_info_get_signal">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="253">Obtain an interface type signal at index @n.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="73"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="260">the #GISignalInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="SignalInfo" c:type="GISignalInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="255">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="256">index of signal to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_info_get_vfunc"
              c:identifier="g_interface_info_get_vfunc">
      <doc xml:space="preserve"
           filename="girepository/giinterfaceinfo.c"
           line="344">Obtain an interface type virtual function at index @n.</doc>
      <source-position filename="girepository/giinterfaceinfo.h" line="84"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giinterfaceinfo.c"
             line="351">the #GIVFuncInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="346">a #GIInterfaceInfo</doc>
          <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giinterfaceinfo.c"
               line="347">index of virtual function to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="invoke_error_quark" c:identifier="g_invoke_error_quark">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.c"
           line="212">TODO</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.c"
             line="217">TODO</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <enumeration name="nvokeError" c:type="GInvokeError">
      <doc xml:space="preserve"
           filename="girepository/gifunctioninfo.h"
           line="66">An error occuring while invoking a function via
g_function_info_invoke().</doc>
      <source-position filename="girepository/gifunctioninfo.h" line="83"/>
      <member name="failed" value="0" c:identifier="G_INVOKE_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.h"
             line="68">invokation failed, unknown error.</doc>
      </member>
      <member name="symbol_not_found"
              value="1"
              c:identifier="G_INVOKE_ERROR_SYMBOL_NOT_FOUND">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.h"
             line="69">symbol couldn't be found in any of the
libraries associated with the typelib of the function.</doc>
      </member>
      <member name="argument_mismatch"
              value="2"
              c:identifier="G_INVOKE_ERROR_ARGUMENT_MISMATCH">
        <doc xml:space="preserve"
             filename="girepository/gifunctioninfo.h"
             line="71">the arguments provided didn't match
the expected arguments for the functions type signature.</doc>
      </member>
    </enumeration>
    <function name="object_info_find_method"
              c:identifier="g_object_info_find_method">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="435">Obtain a method of the object type given a @name. %NULL will be
returned if there's no method available with that name.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="128"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="443">the #GIFunctionInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="437">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="438">name of method to obtain</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_find_method_using_interfaces"
              c:identifier="g_object_info_find_method_using_interfaces">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="470">Obtain a method of the object given a @name, searching both the
object @info and any interfaces it implements.  %NULL will be
returned if there's no method available with that name.

Note that this function does *not* search parent classes; you will have
to chain up if that's desired.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="133"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="483">the #GIFunctionInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="472">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="473">name of method to obtain</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="implementor"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="474">The implementor of the interface</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo**"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_find_signal"
              c:identifier="g_object_info_find_signal">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="611">TODO</doc>
      <source-position filename="girepository/giobjectinfo.h" line="147"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="618">Info for the signal with name @name in @info, or %NULL on failure.</doc>
        <type name="SignalInfo" c:type="GISignalInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="613">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="614">Name of signal</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_find_vfunc"
              c:identifier="g_object_info_find_vfunc">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="694">Locate a virtual function slot with name @name. Note that the namespace
for virtuals is distinct from that of methods; there may or may not be
a concrete method associated for a virtual. If there is one, it may
be retrieved using g_vfunc_info_get_invoker(), otherwise %NULL will be
returned.
See the documentation for g_vfunc_info_get_invoker() for more
information on invoking virtuals.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="159"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="707">the #GIVFuncInfo, or %NULL. Free it with
g_base_info_unref() when done.</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="696">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="697">The name of a virtual function to find.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_find_vfunc_using_interfaces"
              c:identifier="g_object_info_find_vfunc_using_interfaces">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="736">Locate a virtual function slot with name @name, searching both the object
@info and any interfaces it implements.  Note that the namespace for
virtuals is distinct from that of methods; there may or may not be a
concrete method associated for a virtual. If there is one, it may be
retrieved using g_vfunc_info_get_invoker(), otherwise %NULL will be
returned.

Note that this function does *not* search parent classes; you will have
to chain up if that's desired.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="163"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="752">the #GIVFuncInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="738">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="739">name of vfunc to obtain</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="implementor"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="740">The implementor of the interface</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo**"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_abstract"
              c:identifier="g_object_info_get_abstract">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="109">Obtain if the object type is an abstract type, eg if it cannot be
instantiated</doc>
      <source-position filename="girepository/giobjectinfo.h" line="88"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="116">%TRUE if the object type is abstract</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="111">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_class_struct"
              c:identifier="g_object_info_get_class_struct">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="857">Every #GObject has two structures; an instance structure and a class
structure.  This function returns the metadata for the class structure.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="175"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="864">the #GIStructInfo or %NULL. Free with
g_base_info_unref() when done.</doc>
        <type name="StructInfo" c:type="GIStructInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="859">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_constant"
              c:identifier="g_object_info_get_constant">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="818">Obtain an object type constant at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="171"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="825">the #GIConstantInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="ConstantInfo" c:type="GIConstantInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="820">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="821">index of constant to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_field"
              c:identifier="g_object_info_get_field">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="295">Obtain an object type field at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="110"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="302">the #GIFieldInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="FieldInfo" c:type="GIFieldInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="297">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="298">index of field to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_final"
              c:identifier="g_object_info_get_final"
              version="1.70">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="132">Checks whether the object type is a final type, i.e. if it cannot
be derived</doc>
      <source-position filename="girepository/giobjectinfo.h" line="91"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="139">%TRUE if the object type is final</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="134">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_fundamental"
              c:identifier="g_object_info_get_fundamental">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="157">Obtain if the object type is of a fundamental type which is not
G_TYPE_OBJECT. This is mostly for supporting GstMiniObject.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="94"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="164">%TRUE if the object type is a fundamental type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="159">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_get_value_function"
              c:identifier="g_object_info_get_get_value_function">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="1064">Obtain the symbol name of the function that should be called to convert
an object instance pointer of this object type to a GValue.
I's mainly used fundamental types. The type signature for the symbol
is %GIObjectInfoGetValueFunction, to fetch the function pointer
see g_object_info_get_get_value_function().</doc>
      <source-position filename="girepository/giobjectinfo.h" line="200"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="1074">the symbol or %NULL</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="1066">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_get_value_function_pointer"
              c:identifier="g_object_info_get_get_value_function_pointer"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="1093">Obtain a pointer to a function which can be used to
extract an instance of this object type out of a GValue.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="203"/>
      <return-value nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="1102">the function pointer or %NULL</doc>
        <type name="ObjectInfoGetValueFunction"
              c:type="GIObjectInfoGetValueFunction"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="1095">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_interface"
              c:identifier="g_object_info_get_interface">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="247">Obtain an object type interface at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="103"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="254">the #GIInterfaceInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="InterfaceInfo" c:type="GIInterfaceInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="249">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="250">index of interface to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_method"
              c:identifier="g_object_info_get_method">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="398">Obtain an object type method at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="124"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="405">the #GIFunctionInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="400">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="401">index of method to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_constants"
              c:identifier="g_object_info_get_n_constants">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="796">Obtain the number of constants that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="168"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="802">number of constants</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="798">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_fields"
              c:identifier="g_object_info_get_n_fields">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="273">Obtain the number of fields that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="107"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="279">number of fields</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="275">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_interfaces"
              c:identifier="g_object_info_get_n_interfaces">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="225">Obtain the number of interfaces that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="100"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="231">number of interfaces</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="227">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_methods"
              c:identifier="g_object_info_get_n_methods">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="376">Obtain the number of methods that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="121"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="382">number of methods</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="378">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_properties"
              c:identifier="g_object_info_get_n_properties">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="320">Obtain the number of properties that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="114"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="326">number of properties</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="322">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_signals"
              c:identifier="g_object_info_get_n_signals">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="527">Obtain the number of signals that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="139"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="533">number of signals</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="529">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_n_vfuncs"
              c:identifier="g_object_info_get_n_vfuncs">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="634">Obtain the number of virtual functions that this object type has.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="152"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="640">number of virtual functions</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="636">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_parent"
              c:identifier="g_object_info_get_parent">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="82">Obtain the parent of the object type.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="97"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="88">the #GIObjectInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="ObjectInfo" c:type="GIObjectInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="84">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_property"
              c:identifier="g_object_info_get_property">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="341">Obtain an object type property at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="117"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="348">the #GIPropertyInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="343">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="344">index of property to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_ref_function"
              c:identifier="g_object_info_get_ref_function">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="919">Obtain the symbol name of the function that should be called to ref this
object type. It's mainly used fundamental types. The type signature for
the symbol is %GIObjectInfoRefFunction, to fetch the function pointer
see g_object_info_get_ref_function().</doc>
      <source-position filename="girepository/giobjectinfo.h" line="179"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="928">the symbol or %NULL</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="921">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_ref_function_pointer"
              c:identifier="g_object_info_get_ref_function_pointer"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="947">Obtain a pointer to a function which can be used to
increase the reference count an instance of this object type.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="182"/>
      <return-value nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="956">the function pointer or %NULL</doc>
        <type name="ObjectInfoRefFunction" c:type="GIObjectInfoRefFunction"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="949">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_set_value_function"
              c:identifier="g_object_info_get_set_value_function">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="1015">Obtain the symbol name of the function that should be called to convert
set a GValue giving an object instance pointer of this object type.
I's mainly used fundamental types. The type signature for the symbol
is %GIObjectInfoSetValueFunction, to fetch the function pointer
see g_object_info_get_set_value_function().</doc>
      <source-position filename="girepository/giobjectinfo.h" line="193"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="1025">the symbol or %NULL</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="1017">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_set_value_function_pointer"
              c:identifier="g_object_info_get_set_value_function_pointer"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="1044">Obtain a pointer to a function which can be used to
set a GValue given an instance of this object type.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="196"/>
      <return-value nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="1053">the function pointer or %NULL</doc>
        <type name="ObjectInfoSetValueFunction"
              c:type="GIObjectInfoSetValueFunction"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="1046">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_signal"
              c:identifier="g_object_info_get_signal">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="565">Obtain an object type signal at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="142"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="572">the #GISignalInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="SignalInfo" c:type="GISignalInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="567">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="568">index of signal to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_type_init"
              c:identifier="g_object_info_get_type_init">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="202">Obtain the function which when called will return the GType
function for which this object type is registered.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="85"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="209">the type init function</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="204">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_type_name"
              c:identifier="g_object_info_get_type_name">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="180">Obtain the name of the objects class/type.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="82"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="186">name of the objects type</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="182">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_unref_function"
              c:identifier="g_object_info_get_unref_function">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="967">Obtain the symbol name of the function that should be called to unref this
object type. It's mainly used fundamental types. The type signature for
the symbol is %GIObjectInfoUnrefFunction, to fetch the function pointer
see g_object_info_get_unref_function().</doc>
      <source-position filename="girepository/giobjectinfo.h" line="186"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="976">the symbol or %NULL</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="969">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_unref_function_pointer"
              c:identifier="g_object_info_get_unref_function_pointer"
              introspectable="0">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="995">Obtain a pointer to a function which can be used to
decrease the reference count an instance of this object type.
This takes derivation into account and will reversely traverse
the base classes of this type, starting at the top type.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="189"/>
      <return-value nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="1004">the function pointer or %NULL</doc>
        <type name="ObjectInfoUnrefFunction"
              c:type="GIObjectInfoUnrefFunction"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="997">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_info_get_vfunc"
              c:identifier="g_object_info_get_vfunc">
      <doc xml:space="preserve"
           filename="girepository/giobjectinfo.c"
           line="656">Obtain an object type virtual function at index @n.</doc>
      <source-position filename="girepository/giobjectinfo.h" line="155"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giobjectinfo.c"
             line="663">the #GIVFuncInfo. Free the struct by calling
g_base_info_unref() when done.</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="658">a #GIObjectInfo</doc>
          <type name="ObjectInfo" c:type="GIObjectInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giobjectinfo.c"
               line="659">index of virtual function to get</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_info_get_flags"
              c:identifier="g_property_info_get_flags">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.c"
           line="41">Obtain the flags for this property info. See #GParamFlags for
more information about possible flag values.</doc>
      <source-position filename="girepository/gipropertyinfo.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gipropertyinfo.c"
             line="48">the flags</doc>
        <type name="GObject.ParamFlags" c:type="GParamFlags"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gipropertyinfo.c"
               line="43">a #GIPropertyInfo</doc>
          <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_info_get_getter"
              c:identifier="g_property_info_get_getter">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.c"
           line="169">Obtains the getter function associated with this #GIPropertyInfo.

The setter is only available for %G_PARAM_READABLE properties.</doc>
      <source-position filename="girepository/gipropertyinfo.h" line="57"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/gipropertyinfo.c"
             line="177">the function info or %NULL if not set.
  Free it with g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gipropertyinfo.c"
               line="171">a #GIPropertyInfo</doc>
          <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_info_get_ownership_transfer"
              c:identifier="g_property_info_get_ownership_transfer">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.c"
           line="101">Obtain the ownership transfer for this property. See #GITransfer for more
information about transfer values.</doc>
      <source-position filename="girepository/gipropertyinfo.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gipropertyinfo.c"
             line="108">the transfer</doc>
        <type name="Transfer" c:type="GITransfer"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gipropertyinfo.c"
               line="103">a #GIPropertyInfo</doc>
          <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_info_get_setter"
              c:identifier="g_property_info_get_setter">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.c"
           line="129">Obtains the setter function associated with this #GIPropertyInfo.

The setter is only available for %G_PARAM_WRITABLE properties that
are also not %G_PARAM_CONSTRUCT_ONLY.</doc>
      <source-position filename="girepository/gipropertyinfo.h" line="54"/>
      <return-value transfer-ownership="full" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/gipropertyinfo.c"
             line="138">the function info or %NULL if not set.
  Free it with g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gipropertyinfo.c"
               line="131">a #GIPropertyInfo</doc>
          <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_info_get_type"
              c:identifier="g_property_info_get_type">
      <doc xml:space="preserve"
           filename="girepository/gipropertyinfo.c"
           line="79">Obtain the type information for the property @info.</doc>
      <source-position filename="girepository/gipropertyinfo.h" line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gipropertyinfo.c"
             line="85">the #GITypeInfo, free it with
g_base_info_unref() when done.</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gipropertyinfo.c"
               line="81">a #GIPropertyInfo</doc>
          <type name="PropertyInfo" c:type="GIPropertyInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="registered_type_info_get_g_type"
              c:identifier="g_registered_type_info_get_g_type">
      <doc xml:space="preserve"
           filename="girepository/giregisteredtypeinfo.c"
           line="105">Obtain the #GType for this registered type or G_TYPE_NONE which a special meaning.
It means that either there is no type information associated with this @info or
that the shared library which provides the type_init function for this
@info cannot be called.</doc>
      <source-position filename="girepository/giregisteredtypeinfo.h"
                       line="58"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giregisteredtypeinfo.c"
             line="114">the #GType.</doc>
        <type name="GType" c:type="GType"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giregisteredtypeinfo.c"
               line="107">a #GIRegisteredTypeInfo</doc>
          <type name="RegisteredTypeInfo" c:type="GIRegisteredTypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="registered_type_info_get_type_init"
              c:identifier="g_registered_type_info_get_type_init">
      <doc xml:space="preserve"
           filename="girepository/giregisteredtypeinfo.c"
           line="76">Obtain the type init function for @info. The type init function is the
function which will register the GType within the GObject type system.
Usually this is not called by langauge bindings or applications, use
g_registered_type_info_get_g_type() directly instead.</doc>
      <source-position filename="girepository/giregisteredtypeinfo.h"
                       line="55"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giregisteredtypeinfo.c"
             line="85">the symbol name of the type init function, suitable for
passing into g_module_symbol().</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giregisteredtypeinfo.c"
               line="78">a #GIRegisteredTypeInfo</doc>
          <type name="RegisteredTypeInfo" c:type="GIRegisteredTypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="registered_type_info_get_type_name"
              c:identifier="g_registered_type_info_get_type_name">
      <doc xml:space="preserve"
           filename="girepository/giregisteredtypeinfo.c"
           line="50">Obtain the type name of the struct within the GObject type system.
This type can be passed to g_type_name() to get a #GType.</doc>
      <source-position filename="girepository/giregisteredtypeinfo.h"
                       line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giregisteredtypeinfo.c"
             line="57">the type name</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giregisteredtypeinfo.c"
               line="52">a #GIRegisteredTypeInfo</doc>
          <type name="RegisteredTypeInfo" c:type="GIRegisteredTypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_info_get_class_closure"
              c:identifier="g_signal_info_get_class_closure">
      <doc xml:space="preserve"
           filename="girepository/gisignalinfo.c"
           line="91">Obtain the class closure for this signal if one is set. The class
closure is a virtual function on the type that the signal belongs to.
If the signal lacks a closure %NULL will be returned.</doc>
      <source-position filename="girepository/gisignalinfo.h" line="49"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gisignalinfo.c"
             line="99">the class closure or %NULL</doc>
        <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gisignalinfo.c"
               line="93">a #GISignalInfo</doc>
          <type name="SignalInfo" c:type="GISignalInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_info_get_flags"
              c:identifier="g_signal_info_get_flags">
      <doc xml:space="preserve"
           filename="girepository/gisignalinfo.c"
           line="45">Obtain the flags for this signal info. See #GSignalFlags for
more information about possible flag values.</doc>
      <source-position filename="girepository/gisignalinfo.h" line="46"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gisignalinfo.c"
             line="52">the flags</doc>
        <type name="GObject.SignalFlags" c:type="GSignalFlags"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gisignalinfo.c"
               line="47">a #GISignalInfo</doc>
          <type name="SignalInfo" c:type="GISignalInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_info_true_stops_emit"
              c:identifier="g_signal_info_true_stops_emit">
      <doc xml:space="preserve"
           filename="girepository/gisignalinfo.c"
           line="118">Obtain if the returning true in the signal handler will
stop the emission of the signal.</doc>
      <source-position filename="girepository/gisignalinfo.h" line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gisignalinfo.c"
             line="125">%TRUE if returning true stops the signal emission</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gisignalinfo.c"
               line="120">a #GISignalInfo</doc>
          <type name="SignalInfo" c:type="GISignalInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_find_field"
              c:identifier="g_struct_info_find_field"
              version="1.46">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="110">Obtain the type information for field named @name.</doc>
      <source-position filename="girepository/gistructinfo.h" line="52"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="118">the #GIFieldInfo or %NULL if not found,
free it with g_base_info_unref() when done.</doc>
        <type name="FieldInfo" c:type="GIFieldInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="112">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="113">a field name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_find_method"
              c:identifier="g_struct_info_find_method">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="193">Obtain the type information for method named @name.</doc>
      <source-position filename="girepository/gistructinfo.h" line="63"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="200">the #GIFunctionInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="195">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="196">a method name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_alignment"
              c:identifier="g_struct_info_get_alignment">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="232">Obtain the required alignment of the structure.</doc>
      <source-position filename="girepository/gistructinfo.h" line="70"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="238">required alignment in bytes</doc>
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="234">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_copy_function"
              c:identifier="g_struct_info_get_copy_function"
              version="1.76">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="285">Retrieves the name of the copy function for @info, if any is set.</doc>
      <source-position filename="girepository/gistructinfo.h" line="79"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="291">the name of the copy function</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="287">a struct information blob</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_field"
              c:identifier="g_struct_info_get_field">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="90">Obtain the type information for field with specified index.</doc>
      <source-position filename="girepository/gistructinfo.h" line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="97">the #GIFieldInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="FieldInfo" c:type="GIFieldInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="92">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="93">a field index</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_free_function"
              c:identifier="g_struct_info_get_free_function"
              version="1.76">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="312">Retrieves the name of the free function for @info, if any is set.</doc>
      <source-position filename="girepository/gistructinfo.h" line="82"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="318">the name of the free function</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="314">a struct information blob</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_method"
              c:identifier="g_struct_info_get_method">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="169">Obtain the type information for method with specified index.</doc>
      <source-position filename="girepository/gistructinfo.h" line="59"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="176">the #GIFunctionInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="171">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="172">a method index</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_n_fields"
              c:identifier="g_struct_info_get_n_fields">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="43">Obtain the number of fields this structure has.</doc>
      <source-position filename="girepository/gistructinfo.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="49">number of fields</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="45">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_n_methods"
              c:identifier="g_struct_info_get_n_methods">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="152">Obtain the number of methods this structure has.</doc>
      <source-position filename="girepository/gistructinfo.h" line="56"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="158">number of methods</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="154">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_get_size"
              c:identifier="g_struct_info_get_size">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="215">Obtain the total size of the structure.</doc>
      <source-position filename="girepository/gistructinfo.h" line="67"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="221">size of the structure in bytes</doc>
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="217">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_is_foreign"
              c:identifier="g_struct_info_is_foreign">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="249">TODO</doc>
      <source-position filename="girepository/gistructinfo.h" line="76"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="255">TODO</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="251">TODO</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="struct_info_is_gtype_struct"
              c:identifier="g_struct_info_is_gtype_struct">
      <doc xml:space="preserve"
           filename="girepository/gistructinfo.c"
           line="266">Return true if this structure represents the "class structure" for some
#GObject or #GInterface.  This function is mainly useful to hide this kind of structure
from generated public APIs.</doc>
      <source-position filename="girepository/gistructinfo.h" line="73"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gistructinfo.c"
             line="274">%TRUE if this is a class struct, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gistructinfo.c"
               line="268">a #GIStructInfo</doc>
          <type name="StructInfo" c:type="GIStructInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_argument_from_hash_pointer"
              c:identifier="g_type_info_argument_from_hash_pointer"
              version="1.66">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="447">GLib data structures, such as #GList, #GSList, and #GHashTable, all store
data pointers.
In the case where the list or hash table is storing single types rather than
structs, these data pointers may have values stuffed into them via macros
such as %GPOINTER_TO_INT.

Use this function to ensure that all values are correctly extracted from
stuffed pointers, regardless of the machine's architecture or endianness.

This function fills in the appropriate field of @arg with the value extracted
from @hash_pointer, depending on the storage type of @info.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="141"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="449">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
        <parameter name="hash_pointer"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="450">A pointer, such as a #GHashTable data pointer</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="arg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="451">A #GIArgument to fill in</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_array_fixed_size"
              c:identifier="g_type_info_get_array_fixed_size">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="248">Obtain the fixed array size of the type. The type tag must be a
#GI_TYPE_TAG_ARRAY or -1 will be returned.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="129"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="255">the size or -1 if it's not an array</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="250">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_array_length"
              c:identifier="g_type_info_get_array_length">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="214">Obtain the position of the argument which gives the array length of the type.
The type tag must be a #GI_TYPE_TAG_ARRAY or -1 will be returned.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="126"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="221">the array length, or -1 if the type is not an array</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="216">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_array_type"
              c:identifier="g_type_info_get_array_type">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="313">Obtain the array type for this type. See #GIArrayType for a list of
possible values. If the type tag of this type is not array, -1 will be
returned.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="135"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="321">the array type or -1</doc>
        <type name="ArrayType" c:type="GIArrayType"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="315">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_interface"
              c:identifier="g_type_info_get_interface">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="158">For types which have #GI_TYPE_TAG_INTERFACE such as GObjects and boxed values,
this function returns full information about the referenced type.  You can then
inspect the type of the returned #GIBaseInfo to further query whether it is
a concrete GObject, a GInterface, a structure, etc. using g_base_info_get_type().</doc>
      <source-position filename="girepository/gitypeinfo.h" line="123"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="167">the #GIBaseInfo, or %NULL. Free it with
g_base_info_unref() when done.</doc>
        <type name="BaseInfo" c:type="GIBaseInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="160">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_param_type"
              c:identifier="g_type_info_get_param_type">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="115">Obtain the parameter type @n.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="119"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="122">the param type info</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="117">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="118">index of the parameter</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_storage_type"
              c:identifier="g_type_info_get_storage_type"
              version="1.66">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="345">Obtain the type tag corresponding to the underlying storage type in C for
the type.
See #GITypeTag for a list of type tags.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="138"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="353">the type tag</doc>
        <type name="TypeTag" c:type="GITypeTag"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="347">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_get_tag" c:identifier="g_type_info_get_tag">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="83">Obtain the type tag for the type. See #GITypeTag for a list
of type tags.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="116"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="90">the type tag</doc>
        <type name="TypeTag" c:type="GITypeTag"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="85">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_hash_pointer_from_argument"
              c:identifier="g_type_info_hash_pointer_from_argument"
              version="1.66">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="541">GLib data structures, such as #GList, #GSList, and #GHashTable, all store
data pointers.
In the case where the list or hash table is storing single types rather than
structs, these data pointers may have values stuffed into them via macros
such as %GPOINTER_TO_INT.

Use this function to ensure that all values are correctly stuffed into
pointers, regardless of the machine's architecture or endianness.

This function returns a pointer stuffed with the appropriate field of @arg,
depending on the storage type of @info.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="146"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="558">A stuffed pointer, that can be stored in a #GHashTable, for example</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="543">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
        <parameter name="arg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="544">A #GIArgument with the value to stuff into a pointer</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_is_pointer"
              c:identifier="g_type_info_is_pointer">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="49">Obtain if the type is passed as a reference.

Note that the types of %GI_DIRECTION_OUT and %GI_DIRECTION_INOUT parameters
will only be pointers if the underlying type being transferred is a pointer
(i.e. only if the type of the C function’s formal parameter is a pointer to a
pointer).</doc>
      <source-position filename="girepository/gitypeinfo.h" line="113"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="60">%TRUE if it is a pointer</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="51">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_info_is_zero_terminated"
              c:identifier="g_type_info_is_zero_terminated">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="282">Obtain if the last element of the array is %NULL. The type tag must be a
#GI_TYPE_TAG_ARRAY or %FALSE will be returned.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="132"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="289">%TRUE if zero terminated</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="284">a #GITypeInfo</doc>
          <type name="TypeInfo" c:type="GITypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_tag_argument_from_hash_pointer"
              c:identifier="gi_type_tag_argument_from_hash_pointer"
              version="1.72">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="374">GLib data structures, such as #GList, #GSList, and #GHashTable, all store
data pointers.
In the case where the list or hash table is storing single types rather than
structs, these data pointers may have values stuffed into them via macros
such as %GPOINTER_TO_INT.

Use this function to ensure that all values are correctly extracted from
stuffed pointers, regardless of the machine's architecture or endianness.

This function fills in the appropriate field of @arg with the value extracted
from @hash_pointer, depending on @storage_type.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="150"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="storage_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="376">a #GITypeTag obtained from g_type_info_get_storage_type()</doc>
          <type name="TypeTag" c:type="GITypeTag"/>
        </parameter>
        <parameter name="hash_pointer"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="377">A pointer, such as a #GHashTable data pointer</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="arg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="378">A #GIArgument to fill in</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_tag_hash_pointer_from_argument"
              c:identifier="gi_type_tag_hash_pointer_from_argument"
              version="1.72">
      <doc xml:space="preserve"
           filename="girepository/gitypeinfo.c"
           line="477">GLib data structures, such as #GList, #GSList, and #GHashTable, all store
data pointers.
In the case where the list or hash table is storing single types rather than
structs, these data pointers may have values stuffed into them via macros
such as %GPOINTER_TO_INT.

Use this function to ensure that all values are correctly stuffed into
pointers, regardless of the machine's architecture or endianness.

This function returns a pointer stuffed with the appropriate field of @arg,
depending on @storage_type.</doc>
      <source-position filename="girepository/gitypeinfo.h" line="155"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/gitypeinfo.c"
             line="494">A stuffed pointer, that can be stored in a #GHashTable, for example</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="storage_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="479">a #GITypeTag obtained from g_type_info_get_storage_type()</doc>
          <type name="TypeTag" c:type="GITypeTag"/>
        </parameter>
        <parameter name="arg" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gitypeinfo.c"
               line="480">A #GIArgument with the value to stuff into a pointer</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_tag_to_string" c:identifier="g_type_tag_to_string">
      <doc xml:space="preserve"
           filename="girepository/girepository.c"
           line="1790">Obtain a string representation of @type</doc>
      <source-position filename="girepository/gitypeinfo.h" line="106"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/girepository.c"
             line="1796">the string</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/girepository.c"
               line="1792">the type_tag</doc>
          <type name="TypeTag" c:type="GITypeTag"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_find_method"
              c:identifier="g_union_info_find_method">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="212">Obtain the type information for method named @name.</doc>
      <source-position filename="girepository/giunioninfo.h" line="71"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="219">the #GIFunctionInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="214">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="215">a method name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_alignment"
              c:identifier="g_union_info_get_alignment">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="254">Obtain the required alignment of the union.</doc>
      <source-position filename="girepository/giunioninfo.h" line="78"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="260">required alignment in bytes</doc>
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="256">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_copy_function"
              c:identifier="g_union_info_get_copy_function"
              version="1.76">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="271">Retrieves the name of the copy function for @info, if any is set.</doc>
      <source-position filename="girepository/giunioninfo.h" line="81"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="277">the name of the copy function</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="273">a union information blob</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_discriminator"
              c:identifier="g_union_info_get_discriminator">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="176">Obtain discriminator value assigned for n-th union field, i.e. n-th
union field is the active one if discriminator contains this
constant.</doc>
      <source-position filename="girepository/giunioninfo.h" line="67"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="185">the #GIConstantInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="ConstantInfo" c:type="GIConstantInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="178">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="179">a union field index</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_discriminator_offset"
              c:identifier="g_union_info_get_discriminator_offset">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="142">Returns offset of the discriminator field in the structure.</doc>
      <source-position filename="girepository/giunioninfo.h" line="61"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="148">offset in bytes of the discriminator</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="144">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_discriminator_type"
              c:identifier="g_union_info_get_discriminator_type">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="159">Obtain the type information of the union discriminator.</doc>
      <source-position filename="girepository/giunioninfo.h" line="64"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="165">the #GITypeInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="TypeInfo" c:type="GITypeInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="161">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_field"
              c:identifier="g_union_info_get_field">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="60">Obtain the type information for field with specified index.</doc>
      <source-position filename="girepository/giunioninfo.h" line="47"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="67">the #GIFieldInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="FieldInfo" c:type="GIFieldInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="62">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="63">a field index</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_free_function"
              c:identifier="g_union_info_get_free_function"
              version="1.76">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="298">Retrieves the name of the free function for @info, if any is set.</doc>
      <source-position filename="girepository/giunioninfo.h" line="84"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="304">the name of the free function</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="300">a union information blob</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_method"
              c:identifier="g_union_info_get_method">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="99">Obtain the type information for method with specified index.</doc>
      <source-position filename="girepository/giunioninfo.h" line="54"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="106">the #GIFunctionInfo, free it with g_base_info_unref()
when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="101">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="102">a method index</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_n_fields"
              c:identifier="g_union_info_get_n_fields">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="43">Obtain the number of fields this union has.</doc>
      <source-position filename="girepository/giunioninfo.h" line="44"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="49">number of fields</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="45">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_n_methods"
              c:identifier="g_union_info_get_n_methods">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="82">Obtain the number of methods this union has.</doc>
      <source-position filename="girepository/giunioninfo.h" line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="88">number of methods</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="84">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_get_size" c:identifier="g_union_info_get_size">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="237">Obtain the total size of the union.</doc>
      <source-position filename="girepository/giunioninfo.h" line="75"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="243">size of the union in bytes</doc>
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="239">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="union_info_is_discriminated"
              c:identifier="g_union_info_is_discriminated">
      <doc xml:space="preserve"
           filename="girepository/giunioninfo.c"
           line="125">Return true if this union contains discriminator field.</doc>
      <source-position filename="girepository/giunioninfo.h" line="58"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/giunioninfo.c"
             line="131">%TRUE if this is a discriminated union, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/giunioninfo.c"
               line="127">a #GIUnionInfo</doc>
          <type name="UnionInfo" c:type="GIUnionInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="value_info_get_value"
              c:identifier="g_value_info_get_value">
      <doc xml:space="preserve"
           filename="girepository/gienuminfo.c"
           line="207">Obtain the enumeration value of the #GIValueInfo.</doc>
      <source-position filename="girepository/gienuminfo.h" line="76"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/gienuminfo.c"
             line="213">the enumeration value. This will always be representable
  as a 32-bit signed or unsigned value. The use of gint64 as the
  return type is to allow both.</doc>
        <type name="gint64" c:type="gint64"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/gienuminfo.c"
               line="209">a #GIValueInfo</doc>
          <type name="ValueInfo" c:type="GIValueInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vfunc_info_get_address"
              c:identifier="g_vfunc_info_get_address"
              throws="1">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="196">This method will look up where inside the type struct of @implementor_gtype
is the implementation for @info.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="56"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="girepository/givfuncinfo.c"
             line="205">address to a function or %NULL if an error happened</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="198">a #GIVFuncInfo</doc>
          <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
        </parameter>
        <parameter name="implementor_gtype" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="199">#GType implementing this virtual function</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="vfunc_info_get_flags"
              c:identifier="g_vfunc_info_get_flags">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="69">Obtain the flags for this virtual function info. See #GIVFuncInfoFlags for
more information about possible flag values.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="44"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/givfuncinfo.c"
             line="76">the flags</doc>
        <type name="VFuncInfoFlags" c:type="GIVFuncInfoFlags"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="71">a #GIVFuncInfo</doc>
          <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vfunc_info_get_invoker"
              c:identifier="g_vfunc_info_get_invoker">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="157">If this virtual function has an associated invoker method, this
method will return it.  An invoker method is a C entry point.

Not all virtuals will have invokers.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="53"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/givfuncinfo.c"
             line="166">the #GIVFuncInfo or %NULL. Free it with
g_base_info_unref() when done.</doc>
        <type name="FunctionInfo" c:type="GIFunctionInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="159">a #GIVFuncInfo</doc>
          <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vfunc_info_get_offset"
              c:identifier="g_vfunc_info_get_offset">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="107">Obtain the offset of the function pointer in the class struct. The value
0xFFFF indicates that the struct offset is unknown.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="47"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/givfuncinfo.c"
             line="114">the struct offset or 0xFFFF if it's unknown</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="109">a #GIVFuncInfo</doc>
          <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vfunc_info_get_signal"
              c:identifier="g_vfunc_info_get_signal">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="130">Obtain the signal for the virtual function if one is set.
The signal comes from the object or interface to which
this virtual function belongs.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="50"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="girepository/givfuncinfo.c"
             line="138">the signal or %NULL if none set</doc>
        <type name="SignalInfo" c:type="GISignalInfo*"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="132">a #GIVFuncInfo</doc>
          <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function name="vfunc_info_invoke"
              c:identifier="g_vfunc_info_invoke"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve"
           filename="girepository/givfuncinfo.c"
           line="295">Invokes the function described in @info with the given
arguments. Note that inout parameters must appear in both
argument lists.</doc>
      <source-position filename="girepository/givfuncinfo.h" line="61"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="girepository/givfuncinfo.c"
             line="316">%TRUE if the function has been invoked, %FALSE if an
  error occurred.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="297">a #GIVFuncInfo describing the virtual function to invoke</doc>
          <type name="VFuncInfo" c:type="GIVFuncInfo*"/>
        </parameter>
        <parameter name="implementor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="298">#GType of the type that implements this virtual function</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="in_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="299">an array of #GIArgument&lt;!-- --&gt;s, one for each in
   parameter of @info. If there are no in parameter, @in_args
   can be %NULL</doc>
          <array length="3" zero-terminated="0" c:type="const GIArgument*">
            <type name="Argument" c:type="GIArgument"/>
          </array>
        </parameter>
        <parameter name="n_in_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="302">the length of the @in_args array</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="out_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="303">an array of #GIArgument&lt;!-- --&gt;s, one for each out
   parameter of @info. If there are no out parameters, @out_args
   may be %NULL</doc>
          <array length="5" zero-terminated="0" c:type="const GIArgument*">
            <type name="Argument" c:type="GIArgument"/>
          </array>
        </parameter>
        <parameter name="n_out_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="306">the length of the @out_args array</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="girepository/givfuncinfo.c"
               line="307">return location for the return value of the
   function. If the function returns void, @return_value may be
   %NULL</doc>
          <type name="Argument" c:type="GIArgument*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
