<type name="int" c:type="int"/>
</return-value>
</method>
+ <method name="torture_signature_0"
+ c:identifier="test_obj_torture_signature_0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="double*"/>
+ </parameter>
+ <parameter name="z" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="foo" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="q" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="m" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="torture_signature_1"
+ c:identifier="test_obj_torture_signature_1"
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="double*"/>
+ </parameter>
+ <parameter name="z" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="foo" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="q" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="m" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="do_matrix"
c:identifier="test_obj_do_matrix"
doc="This method is virtual. Notably its name differs from the virtual
</parameter>
</parameters>
</function>
+ <function name="test_torture_signature_0"
+ c:identifier="test_torture_signature_0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="double*"/>
+ </parameter>
+ <parameter name="z" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="foo" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="q" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="m" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="test_torture_signature_1"
+ c:identifier="test_torture_signature_1"
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="double*"/>
+ </parameter>
+ <parameter name="z" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="foo" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="q" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="m" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="test_torture_signature_2"
+ c:identifier="test_torture_signature_2">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <type name="TestCallbackUserData" c:type="TestCallbackUserData"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="double*"/>
+ </parameter>
+ <parameter name="z" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="foo" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="q" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="m" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
<function name="test_uint" c:identifier="test_uint">
<return-value transfer-ownership="none">
<type name="uint" c:type="guint"/>
#include <string.h>
#include "everything.h"
+#include <gio/gio.h>
/* basic types */
gboolean test_boolean (gboolean in)
return x;
}
+/**
+ * test_obj_torture_signature_0:
+ * @obj: A #TestObj
+ * @x:
+ * @y: (out):
+ * @z: (out):
+ * @foo:
+ * @q: (out):
+ * @m:
+ *
+ */
+void
+test_obj_torture_signature_0 (TestObj *obj,
+ int x,
+ double *y,
+ int *z,
+ const char *foo,
+ int *q,
+ guint m)
+{
+ *y = x;
+ *z = x * 2;
+ *q = g_utf8_strlen (foo, -1) + m;
+}
+
+/**
+ * test_obj_torture_signature_1:
+ * @obj: A #TestObj
+ * @x:
+ * @y: (out):
+ * @z: (out):
+ * @foo:
+ * @q: (out):
+ * @m:
+ * @error: A #GError
+ *
+ * This function throws an error if m is odd.
+ */
+gboolean
+test_obj_torture_signature_1 (TestObj *obj,
+ int x,
+ double *y,
+ int *z,
+ const char *foo,
+ int *q,
+ guint m,
+ GError **error)
+{
+ *y = x;
+ *z = x * 2;
+ *q = g_utf8_strlen (foo, -1) + m;
+ if (m % 2 == 0)
+ return TRUE;
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "m is odd");
+ return FALSE;
+}
+
/**
* test_obj_do_matrix:
* @obj: A #TestObj
{
return 2*x;
}
+
+/**
+ * test_torture_signature_0:
+ * @x:
+ * @y: (out):
+ * @z: (out):
+ * @foo:
+ * @q: (out):
+ * @m:
+ *
+ */
+void
+test_torture_signature_0 (int x,
+ double *y,
+ int *z,
+ const char *foo,
+ int *q,
+ guint m)
+{
+ *y = x;
+ *z = x * 2;
+ *q = g_utf8_strlen (foo, -1) + m;
+}
+
+/**
+ * test_torture_signature_1:
+ * @x:
+ * @y: (out):
+ * @z: (out):
+ * @foo:
+ * @q: (out):
+ * @m:
+ * @error: A #GError
+ *
+ * This function throws an error if m is odd.
+ */
+gboolean
+test_torture_signature_1 (int x,
+ double *y,
+ int *z,
+ const char *foo,
+ int *q,
+ guint m,
+ GError **error)
+{
+ *y = x;
+ *z = x * 2;
+ *q = g_utf8_strlen (foo, -1) + m;
+ if (m % 2 == 0)
+ return TRUE;
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "m is odd");
+ return FALSE;
+}
+
+/**
+ * test_torture_signature_2:
+ * @x:
+ * @callback:
+ * @user_data:
+ * @notify:
+ * @y: (out):
+ * @z: (out):
+ * @foo:
+ * @q: (out):
+ * @m:
+ *
+ */
+void
+test_torture_signature_2 (int x,
+ TestCallbackUserData callback,
+ gpointer user_data,
+ GDestroyNotify notify,
+ double *y,
+ int *z,
+ const char *foo,
+ int *q,
+ guint m)
+{
+ *y = x;
+ *z = x * 2;
+ *q = g_utf8_strlen (foo, -1) + m;
+ notify (user_data);
+}
+