summaryrefslogtreecommitdiff
path: root/tests/repository/gitypelibtest.c
diff options
context:
space:
mode:
authorPavel Holejsovsky <pavel.holejsovsky@gmail.com>2012-03-31 19:12:48 +0200
committerPavel Holejsovsky <pholejs@src.gnome.org>2012-04-11 20:38:53 +0200
commit2bcf6395a17c655d5164b1a9fb3c3bb5aedda376 (patch)
tree05850eb4ccb381773cc6381d6243a290446aab07 /tests/repository/gitypelibtest.c
parent041aeabea9d84376230354938d1205616e4a560a (diff)
downloadgobject-introspection-2bcf6395a17c655d5164b1a9fb3c3bb5aedda376.tar.gz
Avoid _get_func() consuming reference from input info
Fix of leak in 4c9424e18d71237f438a99bc5f2d45ae7de60b78 was a bit overaggressive, stealing also one reference from input 'info' argument. Also fixes another bug in that commit - local 'func' shadowing the return value, causing that function always returned NULL even when some result was actually found. https://bugzilla.gnome.org/show_bug.cgi?id=673282
Diffstat (limited to 'tests/repository/gitypelibtest.c')
-rw-r--r--tests/repository/gitypelibtest.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/repository/gitypelibtest.c b/tests/repository/gitypelibtest.c
index 15722a6d..c53eab29 100644
--- a/tests/repository/gitypelibtest.c
+++ b/tests/repository/gitypelibtest.c
@@ -156,6 +156,18 @@ test_is_pointer_for_struct_arg (GIRepository *repo)
g_base_info_unref (variant_info);
}
+static void
+test_fundamental_get_ref_function_pointer (GIRepository *repo)
+{
+ GIObjectInfo *info;
+
+ g_assert (g_irepository_require (repo, "Regress", NULL, 0, NULL));
+ info = g_irepository_find_by_name (repo, "Regress",
+ "TestFundamentalObject");
+ g_object_info_get_ref_function_pointer (info);
+ g_base_info_unref (info);
+}
+
int
main(int argc, char **argv)
{
@@ -170,6 +182,7 @@ main(int argc, char **argv)
test_enum_and_flags_static_methods (repo);
test_size_of_gvalue (repo);
test_is_pointer_for_struct_arg (repo);
+ test_fundamental_get_ref_function_pointer (repo);
exit(0);
}