mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 14:42:10 +01:00
Don't leak memory here.
2005-06-23 Matthias Clasen <mclasen@redhat.com> * tests/keyfile-test.c (test_group_remove): Don't leak memory here. * glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't leak output_path. (#308546, Kjartan Maraas)
This commit is contained in:
parent
f3a61fe4a0
commit
58f83683e9
@ -1,5 +1,8 @@
|
|||||||
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_group_remove): Don't leak
|
||||||
|
memory here.
|
||||||
|
|
||||||
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
||||||
leak output_path. (#308546, Kjartan Maraas)
|
leak output_path. (#308546, Kjartan Maraas)
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_group_remove): Don't leak
|
||||||
|
memory here.
|
||||||
|
|
||||||
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
||||||
leak output_path. (#308546, Kjartan Maraas)
|
leak output_path. (#308546, Kjartan Maraas)
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_group_remove): Don't leak
|
||||||
|
memory here.
|
||||||
|
|
||||||
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
||||||
leak output_path. (#308546, Kjartan Maraas)
|
leak output_path. (#308546, Kjartan Maraas)
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
2005-06-23 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* tests/keyfile-test.c (test_group_remove): Don't leak
|
||||||
|
memory here.
|
||||||
|
|
||||||
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
|
||||||
leak output_path. (#308546, Kjartan Maraas)
|
leak output_path. (#308546, Kjartan Maraas)
|
||||||
|
|
||||||
|
@ -587,8 +587,11 @@ g_key_file_load_from_data_dirs (GKeyFile *key_file,
|
|||||||
|
|
||||||
found_file = FALSE;
|
found_file = FALSE;
|
||||||
data_dirs = all_data_dirs;
|
data_dirs = all_data_dirs;
|
||||||
|
output_path = NULL;
|
||||||
while (*data_dirs != NULL && !found_file)
|
while (*data_dirs != NULL && !found_file)
|
||||||
{
|
{
|
||||||
|
g_free (output_path);
|
||||||
|
|
||||||
fd = find_file_in_data_dirs (file, &output_path, &data_dirs,
|
fd = find_file_in_data_dirs (file, &output_path, &data_dirs,
|
||||||
&key_file_error);
|
&key_file_error);
|
||||||
|
|
||||||
@ -596,7 +599,7 @@ g_key_file_load_from_data_dirs (GKeyFile *key_file,
|
|||||||
{
|
{
|
||||||
if (key_file_error)
|
if (key_file_error)
|
||||||
g_propagate_error (error, key_file_error);
|
g_propagate_error (error, key_file_error);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
found_file = g_key_file_load_from_fd (key_file, fd, flags,
|
found_file = g_key_file_load_from_fd (key_file, fd, flags,
|
||||||
@ -606,16 +609,15 @@ g_key_file_load_from_data_dirs (GKeyFile *key_file,
|
|||||||
if (key_file_error)
|
if (key_file_error)
|
||||||
{
|
{
|
||||||
g_propagate_error (error, key_file_error);
|
g_propagate_error (error, key_file_error);
|
||||||
g_free (output_path);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (full_path)
|
|
||||||
*full_path = output_path;
|
|
||||||
else
|
|
||||||
g_free (output_path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (found_file && full_path)
|
||||||
|
*full_path = output_path;
|
||||||
|
else
|
||||||
|
g_free (output_path);
|
||||||
|
|
||||||
g_strfreev (all_data_dirs);
|
g_strfreev (all_data_dirs);
|
||||||
|
|
||||||
return found_file;
|
return found_file;
|
||||||
|
@ -708,6 +708,8 @@ test_group_remove (void)
|
|||||||
g_key_file_remove_group (keyfile, "group1", &error);
|
g_key_file_remove_group (keyfile, "group1", &error);
|
||||||
check_no_error (&error);
|
check_no_error (&error);
|
||||||
|
|
||||||
|
g_strfreev (names);
|
||||||
|
|
||||||
names = g_key_file_get_groups (keyfile, &len);
|
names = g_key_file_get_groups (keyfile, &len);
|
||||||
if (names == NULL)
|
if (names == NULL)
|
||||||
{
|
{
|
||||||
@ -722,6 +724,8 @@ test_group_remove (void)
|
|||||||
g_key_file_remove_group (keyfile, "group2", &error);
|
g_key_file_remove_group (keyfile, "group2", &error);
|
||||||
check_no_error (&error);
|
check_no_error (&error);
|
||||||
|
|
||||||
|
g_strfreev (names);
|
||||||
|
|
||||||
names = g_key_file_get_groups (keyfile, &len);
|
names = g_key_file_get_groups (keyfile, &len);
|
||||||
if (names == NULL)
|
if (names == NULL)
|
||||||
{
|
{
|
||||||
@ -735,6 +739,8 @@ test_group_remove (void)
|
|||||||
g_key_file_remove_group (keyfile, "no such group", &error);
|
g_key_file_remove_group (keyfile, "no such group", &error);
|
||||||
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
|
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
|
||||||
|
|
||||||
|
g_strfreev (names);
|
||||||
|
|
||||||
g_key_file_free (keyfile);
|
g_key_file_free (keyfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user