Use g_simple_async_result_{new_,}take_error
[platform/upstream/glib.git] / gio / ginputstream.c
index a66e9cf..7535bfa 100644 (file)
@@ -947,10 +947,7 @@ read_async_thread (GSimpleAsyncResult *res,
                                   op->buffer, op->count_requested,
                                   cancellable, &error);
   if (op->count_read == -1)
-    {
-      g_simple_async_result_set_from_error (res, error);
-      g_error_free (error);
-    }
+    g_simple_async_result_take_error (res, error);
 }
 
 static void
@@ -1012,10 +1009,7 @@ skip_async_thread (GSimpleAsyncResult *res,
                                   op->count_requested,
                                   cancellable, &error);
   if (op->count_skipped == -1)
-    {
-      g_simple_async_result_set_from_error (res, error);
-      g_error_free (error);
-    }
+    g_simple_async_result_take_error (res, error);
 }
 
 typedef struct {
@@ -1066,13 +1060,12 @@ skip_callback_wrapper (GObject      *source_object,
 
   if (ret == -1)
     {
-      if (data->count_skipped && 
-         error->domain == G_IO_ERROR &&
-         error->code == G_IO_ERROR_CANCELLED)
-       { /* No error, return partial read */ }
+      if (data->count_skipped &&
+          g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+       /* No error, return partial read */
+       g_error_free (error);
       else
-       g_simple_async_result_set_from_error (simple, error);
-      g_error_free (error);
+       g_simple_async_result_take_error (simple, error);
     }
 
   /* Complete immediately, not in idle, since we're already in a mainloop callout */
@@ -1164,10 +1157,7 @@ close_async_thread (GSimpleAsyncResult *res,
     {
       result = class->close_fn (G_INPUT_STREAM (object), cancellable, &error);
       if (!result)
-       {
-         g_simple_async_result_set_from_error (res, error);
-         g_error_free (error);
-       }
+        g_simple_async_result_take_error (res, error);
     }
 }