From: Colin Walters Date: Thu, 12 Jun 2014 16:53:18 +0000 (-0400) Subject: gbookmarkfile: Cleaner error handling code to pacify static analysis X-Git-Tag: 2.41.1~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f7d7e5ab2f3f9421f9df5d76487f37d4bdc78088;hp=fcdd25a96eb33c389f381cacce42e6d4f2912c5c;p=platform%2Fupstream%2Fglib.git gbookmarkfile: Cleaner error handling code to pacify static analysis A static analyzer flagged the g_file_get_contents() call as not checking its return value. While the code here is actually correct, it's verbose at best. I think the "goto out + cleanup" code style is substantially cleaner, less error prone, and easier to read. It also will pacify the static analyzer. https://bugzilla.gnome.org/show_bug.cgi?id=731584 --- diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c index 8b8b50a..3123669 100644 --- a/glib/gbookmarkfile.c +++ b/glib/gbookmarkfile.c @@ -1673,40 +1673,23 @@ g_bookmark_file_load_from_file (GBookmarkFile *bookmark, const gchar *filename, GError **error) { - gchar *buffer; + gboolean ret = FALSE; + gchar *buffer = NULL; gsize len; - GError *read_error; - gboolean retval; g_return_val_if_fail (bookmark != NULL, FALSE); g_return_val_if_fail (filename != NULL, FALSE); - read_error = NULL; - g_file_get_contents (filename, &buffer, &len, &read_error); - if (read_error) - { - g_propagate_error (error, read_error); - - return FALSE; - } + if (!g_file_get_contents (filename, &buffer, &len, error)) + goto out; - read_error = NULL; - retval = g_bookmark_file_load_from_data (bookmark, - buffer, - len, - &read_error); - if (read_error) - { - g_propagate_error (error, read_error); - - g_free (buffer); - - return FALSE; - } + if (!g_bookmark_file_load_from_data (bookmark, buffer, len, error)) + goto out; + ret = TRUE; + out: g_free (buffer); - - return retval; + return ret; }