diff options
author | Colin Walters <walters@verbum.org> | 2012-07-08 20:36:50 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2012-07-08 20:36:50 -0400 |
commit | f77cfc4275b1fba4f9fedea6e40b00e0ebbe142c (patch) | |
tree | abb7eef652d30ef0d0cefe8e642b054c6dfec4bf /tests | |
parent | 3943988d5addbea4603f9b4ee5103c604d03e8f4 (diff) | |
download | gobject-introspection-f77cfc4275b1fba4f9fedea6e40b00e0ebbe142c.tar.gz |
scanner: Ensure "complete_ctype" patch doesn't throw an exception for anonymous unions
The previous patch introduced a regression where we would crash on
encountering an anonymous union. Work around this by just writing out
'gpointer' in this case, and add a regression test.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/scanner/Regress-1.0-expected.gir | 16 | ||||
-rw-r--r-- | tests/scanner/regress.h | 11 |
2 files changed, 26 insertions, 1 deletions
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index 0b39bff8..631dd98e 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -55,6 +55,20 @@ and/or use gtk-doc annotations. --> c:type="REGRESS_LONG_STRING_CONSTANT"> <type name="utf8" c:type="gchar*"/> </constant> + <record name="LikeGnomeKeyringPasswordSchema" + c:type="RegressLikeGnomeKeyringPasswordSchema"> + <field name="dummy" writable="1"> + <type name="gint" c:type="int"/> + </field> + <field name="attributes" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="32"> + <type name="gpointer" c:type="gpointer"/> + </array> + </field> + <field name="dummy2" writable="1"> + <type name="gdouble" c:type="double"/> + </field> + </record> <constant name="Mixed_Case_Constant" value="4423" c:type="REGRESS_Mixed_Case_Constant"> @@ -1474,7 +1488,7 @@ Use with regress_test_obj_emit_sig_with_obj</doc> <type name="GType" c:type="GType"/> </field> <field name="some_union" writable="1"> - <array zero-terminated="0" fixed-size="2"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> <type name="TestStructE__some_union__union"/> </array> </field> diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index 97b9135b..fd937cdd 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -875,4 +875,15 @@ void regress_test_struct_fixed_array_frob (RegressTestStructFixedArray *str); void regress_has_parameter_named_attrs (int foo, gpointer attributes); + +typedef struct { + int dummy; + struct { + const char *name; + guint x; + } attributes[32]; + + double dummy2; +} RegressLikeGnomeKeyringPasswordSchema; + #endif /* __GITESTTYPES_H__ */ |