summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2012-02-09 15:43:23 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2012-02-09 16:00:20 -0500
commit9b4185f88aa321b5160b100597d83d295b0af76e (patch)
treeaddf51fee9cc497391d9e54e919fcf5147575171 /tests
parent9e56835f5ebb601aa0cb22130555a8a4ef15b11b (diff)
downloadgobject-introspection-9b4185f88aa321b5160b100597d83d295b0af76e.tar.gz
scanner: Allow adding annotations to vfuncs directly
Some vfuncs may not have public invokers. In these cases, annotations may still be needed to correctly implement or chain up to a virtual method from a subclass's implementation.
Diffstat (limited to 'tests')
-rw-r--r--tests/scanner/Regress-1.0-expected.gir27
-rw-r--r--tests/scanner/regress.h6
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index 10f86dd1..24e8d050 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -582,6 +582,17 @@ use it should be.</doc>
</parameter>
</parameters>
</function>
+ <virtual-method name="allow_none_vfunc">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="two" transfer-ownership="none" allow-none="1">
+ <doc xml:whitespace="preserve">Another object</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
<virtual-method name="matrix" invoker="do_matrix">
<doc xml:whitespace="preserve">This method is virtual. Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
@@ -1125,6 +1136,22 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
</parameters>
</callback>
</field>
+ <field name="allow_none_vfunc">
+ <callback name="allow_none_vfunc">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </parameter>
+ <parameter name="two" transfer-ownership="none" allow-none="1">
+ <doc xml:whitespace="preserve">Another object</doc>
+ <type name="TestObj" c:type="RegressTestObj*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
<field name="test_signal">
<type name="guint" c:type="guint"/>
</field>
diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h
index 6c5a0361..8942130d 100644
--- a/tests/scanner/regress.h
+++ b/tests/scanner/regress.h
@@ -358,6 +358,12 @@ struct _RegressTestObjClass
int (*matrix) (RegressTestObj *obj, const char *somestr);
+ /**
+ * RegressTestObjClass::allow_none_vfunc
+ * @two: (allow-none): Another object
+ */
+ void (*allow_none_vfunc) (RegressTestObj *obj, RegressTestObj *two);
+
guint test_signal;
guint test_signal_with_static_scope_arg;