summaryrefslogtreecommitdiff
path: root/gio/gfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'gio/gfile.c')
-rw-r--r--gio/gfile.c12
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 {