} else if (index != -1) {
buffer.append_printf (" length=\"%i\"", index);
}
+ buffer.append_printf (" c:type=\"%s%s\"", get_ccode_name (array_type.element_type), direction == ParameterDirection.IN ? "*" : "**");
buffer.append_printf (">\n");
indent++;
buffer.append_printf ("<type name=\"none\"/>\n");
} else if (type is PointerType) {
write_indent ();
- buffer.append_printf ("<type name=\"gpointer\" c:type=\"%s\"/>\n", get_ccode_name (type));
+ buffer.append_printf ("<type name=\"gpointer\" c:type=\"%s%s\"/>\n", get_ccode_name (type), direction == ParameterDirection.IN ? "" : "*");
} else if (type.data_type != null) {
write_indent ();
string type_name = gi_type_name (type.data_type);
} else if (type is DelegateType) {
var deleg_type = (DelegateType) type;
write_indent ();
- buffer.append_printf ("<type name=\"%s\" c:type=\"%s\"/>\n", gi_type_name (deleg_type.delegate_symbol), get_ccode_name (type));
+ buffer.append_printf ("<type name=\"%s\" c:type=\"%s%s\"/>\n", gi_type_name (deleg_type.delegate_symbol), get_ccode_name (type), direction == ParameterDirection.IN ? "" : "*");
} else if (type is GenericType) {
// generic type parameters not supported in GIR
write_indent ();
</return-value>
<parameters>
<parameter name="array" transfer-ownership="none">
- <array length="1">
+ <array length="1" c:type="gint*">
<type name="gint" c:type="gint"/>
</array>
</parameter>
</return-value>
<parameters>
<parameter name="array" direction="inout" transfer-ownership="full">
- <array length="1">
+ <array length="1" c:type="gint**">
<type name="gint" c:type="gint"/>
</array>
</parameter>
</return-value>
<parameters>
<parameter name="array" direction="out" transfer-ownership="full">
- <array length="1">
+ <array length="1" c:type="gint**">
<type name="gint" c:type="gint"/>
</array>
</parameter>
</method>
<method name="array_return" c:identifier="gir_test_object_test_array_return">
<return-value transfer-ownership="full">
- <array length="0">
+ <array length="0" c:type="gint*">
<type name="gint" c:type="gint"/>
</array>
</return-value>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="array" direction="out" transfer-ownership="full">
- <array length="3">
+ <array length="3" c:type="gint**">
<type name="gint" c:type="gint"/>
</array>
</parameter>
</method>
<method name="int_in_int_in_array_return" c:identifier="gir_test_object_test_int_in_int_in_array_return">
<return-value transfer-ownership="full">
- <array length="2">
+ <array length="2" c:type="gint*">
<type name="gint" c:type="gint"/>
</array>
</return-value>
</return-value>
<parameters>
<parameter name="array" direction="out" transfer-ownership="full">
- <array length="1">
+ <array length="1" c:type="gchar***">
<type name="utf8" c:type="gchar*"/>
</array>
</parameter>
</method>
<method name="string_array_return" c:identifier="gir_test_object_test_string_array_return">
<return-value transfer-ownership="full">
- <array length="0">
+ <array length="0" c:type="gchar**">
<type name="utf8" c:type="gchar*"/>
</array>
</return-value>
</return-value>
<parameters>
<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="void*"/>
+ <type name="gpointer" c:type="void**"/>
</parameter>
<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify*"/>
</parameter>
</parameters>
</method>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="a" direction="out" transfer-ownership="full">
- <array length="2">
+ <array length="2" c:type="gint**">
<type name="gint" c:type="gint"/>
</array>
</parameter>
<type name="gint" c:type="gint*"/>
</parameter>
<parameter name="result_target" direction="out" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="void*"/>
+ <type name="gpointer" c:type="void**"/>
</parameter>
<parameter name="result_target_destroy_notify" direction="out" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify*"/>
</parameter>
</parameters>
</method>
<method name="array_return_int_in_delegate_out" c:identifier="gir_test_object_test_array_return_int_in_delegate_out">
<return-value transfer-ownership="full">
- <array length="4">
+ <array length="4" c:type="gint*">
<type name="gint" c:type="gint"/>
</array>
</return-value>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="d" direction="out" transfer-ownership="none" closure="2" scope="notified" destroy="3">
- <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+ <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest*"/>
</parameter>
<parameter name="d_target" direction="out" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="void*"/>
+ <type name="gpointer" c:type="void**"/>
</parameter>
<parameter name="d_target_destroy_notify" direction="out" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify*"/>
</parameter>
<parameter name="result_length1" direction="out" transfer-ownership="none">
<type name="gint" c:type="gint*"/>