mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-05 10:38:08 +01:00
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:
parent
e74b4351a3
commit
ab3c55435a
@ -563,7 +563,10 @@ g_set_error (GError **err,
|
|||||||
if (*err == NULL)
|
if (*err == NULL)
|
||||||
*err = new;
|
*err = new;
|
||||||
else
|
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
|
else
|
||||||
{
|
{
|
||||||
if (*dest != NULL)
|
if (*dest != NULL)
|
||||||
g_warning (ERROR_OVERWRITTEN_WARNING, src->message);
|
{
|
||||||
|
g_warning (ERROR_OVERWRITTEN_WARNING, src->message);
|
||||||
|
g_error_free (src);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
*dest = src;
|
*dest = src;
|
||||||
}
|
}
|
||||||
|
@ -28,10 +28,7 @@ test_overwrite (void)
|
|||||||
g_test_assert_expected_messages ();
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
g_assert_error (dest, G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY);
|
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 (dest);
|
||||||
g_error_free (src);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user