diff options
Diffstat (limited to 'gio/gfile.c')
-rw-r--r-- | gio/gfile.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gio/gfile.c b/gio/gfile.c index 941fa81f5..a4cbd9b0a 100644 --- a/gio/gfile.c +++ b/gio/gfile.c @@ -5411,6 +5411,7 @@ g_file_replace_contents (GFile *file, GFileOutputStream *out; gsize pos, remainder; gssize res; + gboolean ret; g_return_val_if_fail (G_IS_FILE (file), FALSE); g_return_val_if_fail (contents != NULL, FALSE); @@ -5436,18 +5437,19 @@ g_file_replace_contents (GFile *file, { /* Ignore errors on close */ g_output_stream_close (G_OUTPUT_STREAM (out), cancellable, NULL); - + g_object_unref (out); + /* error is set already */ return FALSE; } - if (!g_output_stream_close (G_OUTPUT_STREAM (out), cancellable, error)) - return FALSE; + ret = g_output_stream_close (G_OUTPUT_STREAM (out), cancellable, error); + g_object_unref (out); if (new_etag) *new_etag = g_file_output_stream_get_etag (out); - - return TRUE; + + return ret; } typedef struct { |