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
This commit is contained in:
Colin Walters 2014-06-12 12:53:18 -04:00
parent fcdd25a96e
commit f7d7e5ab2f

View File

@ -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;
}