[glib] gerror: Don't leak memory when overwrite warning
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gerror: Don't leak memory when overwrite warning
- Date: Sun, 10 Nov 2013 21:50:48 +0000 (UTC)
commit ab3c55435af3cecaa4b7805e8f6ffe1719e13ba6
Author: Dan Winship <danw gnome org>
Date: Thu Nov 7 22:38:52 2013 +0100
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
glib/gerror.c | 10 ++++++++--
glib/tests/error.c | 3 ---
2 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/glib/gerror.c b/glib/gerror.c
index 809d0c9..81e6b71 100644
--- a/glib/gerror.c
+++ b/glib/gerror.c
@@ -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;
}
diff --git a/glib/tests/error.c b/glib/tests/error.c
index 81b4055..ebbd965 100644
--- a/glib/tests/error.c
+++ b/glib/tests/error.c
@@ -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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]