diff options
author | Pavel Holejsovsky <pavel.holejsovsky@gmail.com> | 2012-03-31 19:12:48 +0200 |
---|---|---|
committer | Pavel Holejsovsky <pholejs@src.gnome.org> | 2012-04-07 18:13:23 +0200 |
commit | 5fda6c30954e46c95eaf46370a4266c81afea6a2 (patch) | |
tree | 36f9ca6b9a5cb46acad2f9d4de139497bce4b4e5 /tests | |
parent | 4019e078b3f20872cc11b70ae4686ce5f74c1bb9 (diff) | |
download | gobject-introspection-5fda6c30954e46c95eaf46370a4266c81afea6a2.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')
-rw-r--r-- | tests/repository/gitypelibtest.c | 13 |
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); } |