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)
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
leak output_path. (#308546, Kjartan Maraas)
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
leak output_path. (#308546, Kjartan Maraas)
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
leak output_path. (#308546, Kjartan Maraas)
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
leak output_path. (#308546, Kjartan Maraas)
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
leak output_path. (#308546, Kjartan Maraas)
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
leak output_path. (#308546, Kjartan Maraas)
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
leak output_path. (#308546, Kjartan Maraas)
* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
leak output_path. (#308546, Kjartan Maraas)
found_file = FALSE;
data_dirs = all_data_dirs;
found_file = FALSE;
data_dirs = all_data_dirs;
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,
&key_file_error);
fd = find_file_in_data_dirs (file, &output_path, &data_dirs,
&key_file_error);
{
if (key_file_error)
g_propagate_error (error, key_file_error);
{
if (key_file_error)
g_propagate_error (error, key_file_error);
}
found_file = g_key_file_load_from_fd (key_file, fd, flags,
}
found_file = g_key_file_load_from_fd (key_file, fd, flags,
if (key_file_error)
{
g_propagate_error (error, key_file_error);
if (key_file_error)
{
g_propagate_error (error, key_file_error);
-
- 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);
return found_file;
g_strfreev (all_data_dirs);
return found_file;
g_key_file_remove_group (keyfile, "group1", &error);
check_no_error (&error);
g_key_file_remove_group (keyfile, "group1", &error);
check_no_error (&error);
names = g_key_file_get_groups (keyfile, &len);
if (names == NULL)
{
names = g_key_file_get_groups (keyfile, &len);
if (names == NULL)
{
g_key_file_remove_group (keyfile, "group2", &error);
check_no_error (&error);
g_key_file_remove_group (keyfile, "group2", &error);
check_no_error (&error);
names = g_key_file_get_groups (keyfile, &len);
if (names == NULL)
{
names = g_key_file_get_groups (keyfile, &len);
if (names == NULL)
{
g_key_file_remove_group (keyfile, "no such group", &error);
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
g_key_file_remove_group (keyfile, "no such group", &error);
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
g_key_file_free (keyfile);
}
g_key_file_free (keyfile);
}