diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-09-30 14:02:29 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-09-30 14:02:29 +0100 |
commit | 487583fe727d0e743e6be29f79274691294c03a0 (patch) | |
tree | aaa4917f7fc47be88358f328cb887dafdebd8a66 | |
parent | c48a0d881313676f2c215b30ba2f8674673071ad (diff) |
g_error_new_valist, g_error_copy: warn if domain is 0 or message is NULLgerror
Neither of those usages is valid, but there's a lot of use of 0 as a
domain "in the wild", so we can't g_return_if_fail yet.
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371
-rw-r--r-- | glib/gerror.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/glib/gerror.c b/glib/gerror.c index 6217aa28b..7b0b02c2f 100644 --- a/glib/gerror.c +++ b/glib/gerror.c @@ -378,6 +378,14 @@ g_error_new_valist (GQuark domain, { GError *error; + /* Historically, GError allowed this (although it was never meant to work), + * and it has significant use in the wild, which g_return_val_if_fail + * would break. It should maybe g_return_val_if_fail in GLib 4. + * (GNOME#660371, GNOME#560482) + */ + g_warn_if_fail (domain != 0); + g_warn_if_fail (format != NULL); + error = g_slice_new (GError); error->domain = domain; @@ -480,6 +488,9 @@ g_error_copy (const GError *error) GError *copy; g_return_val_if_fail (error != NULL, NULL); + /* See g_error_new_valist for why these don't return */ + g_warn_if_fail (error->domain != 0); + g_warn_if_fail (error->message != NULL); copy = g_slice_new (GError); |