gerror: Don't leak memory when overwrite warning

Even though we can't always make no-leak guarantees when g_warning()
in this case we're testing this behavior in tests, and it would be
good to be able to valgrind this.

https://bugzilla.gnome.org/show_bug.cgi?id=711751
This commit is contained in:
Dan Winship 2013-11-07 22:38:52 +01:00 committed by Stef Walter
parent e74b4351a3
commit ab3c55435a
2 changed files with 8 additions and 5 deletions

View File

@ -563,7 +563,10 @@ g_set_error (GError **err,
if (*err == NULL)
*err = new;
else
g_warning (ERROR_OVERWRITTEN_WARNING, new->message);
{
g_warning (ERROR_OVERWRITTEN_WARNING, new->message);
g_error_free (new);
}
}
/**
@ -619,7 +622,10 @@ g_propagate_error (GError **dest,
else
{
if (*dest != NULL)
g_warning (ERROR_OVERWRITTEN_WARNING, src->message);
{
g_warning (ERROR_OVERWRITTEN_WARNING, src->message);
g_error_free (src);
}
else
*dest = src;
}

View File

@ -28,10 +28,7 @@ test_overwrite (void)
g_test_assert_expected_messages ();
g_assert_error (dest, G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY);
g_assert_error (src, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE);
g_error_free (dest);
g_error_free (src);
}
static void