Bug #633685.
GError *error = NULL;
if (!g_initable_init (G_INITABLE (object), cancellable, &error))
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
}
static void
g_simple_async_result_set_op_res_gssize (simple, res);
if (res == -1)
{
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
}
else
{
/* Only report the error if we've not already read some data */
if (nread < 0 && data->bytes_read == 0)
- g_simple_async_result_set_from_error (simple, error);
+ g_simple_async_result_take_error (simple, error);
+ else if (error)
+ g_error_free (error);
if (nread > 0)
data->bytes_read += nread;
- if (error)
- g_error_free (error);
-
/* Complete immediately, not in idle, since we're already
* in a mainloop callout
*/
result, &error);
if (nread < 0 && data->bytes_read == 0)
- g_simple_async_result_set_from_error (simple, error);
-
+ g_simple_async_result_take_error (simple, error);
+ else if (error)
+ g_error_free (error);
if (nread > 0)
{
priv->pos += data->count;
}
- if (error)
- g_error_free (error);
-
/* Complete immediately, not in idle, since we're already
* in a mainloop callout
*/
/* Only report the error if we've not already read some data */
if (nread < 0 && data->bytes_skipped == 0)
- g_simple_async_result_set_from_error (simple, error);
+ g_simple_async_result_take_error (simple, error);
+ else if (error)
+ g_error_free (error);
if (nread > 0)
data->bytes_skipped += nread;
- if (error)
- g_error_free (error);
-
/* Complete immediately, not in idle, since we're already
* in a mainloop callout
*/
result, &error);
if (nread < 0 && data->bytes_skipped == 0)
- g_simple_async_result_set_from_error (simple, error);
+ g_simple_async_result_take_error (simple, error);
+ else if (error)
+ g_error_free (error);
if (nread > 0)
{
priv->pos += data->count;
}
- if (error)
- g_error_free (error);
-
/* Complete immediately, not in idle, since we're already
* in a mainloop callout
*/
}
if (res == FALSE)
- {
- g_simple_async_result_set_from_error (result, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (result, error);
}
typedef struct {
if (bytes < 0)
/* stream error. */
{
- g_simple_async_result_set_from_error (data->simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
data->checked = 0;
}
cancellable,
&error);
if (data->stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
}
/**
if (!g_dbus_connection_flush_sync (G_DBUS_CONNECTION (object),
cancellable,
&error))
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
}
/**
if (!g_dbus_connection_close_sync (G_DBUS_CONNECTION (object),
cancellable,
&error))
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
}
/**
error = NULL;
if (!g_dbus_connection_send_message_unlocked (connection, message, flags, out_serial, &error))
{
- g_simple_async_result_set_from_error (simple, error);
+ g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete_in_idle (simple);
g_object_unref (simple);
goto out;
value = NULL;
if (value == NULL)
- {
- g_simple_async_result_set_from_error (state->simple, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (state->simple, error);
else
g_simple_async_result_set_op_res_gpointer (state->simple, value,
(GDestroyNotify) g_variant_unref);
&error))
{
g_assert (error != NULL);
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
g_object_unref (source_object);
}
else
if (connection == NULL)
{
g_assert (error != NULL);
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete_in_idle (simple);
g_object_unref (simple);
}
else
{
g_assert (error != NULL);
- g_simple_async_result_set_from_error (data->simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
}
if (data->from_mainloop)
&error);
if (bytes_written == -1)
{
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete (simple);
g_object_unref (simple);
goto out;
g_error_free (error);
goto out;
}
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete (simple);
g_object_unref (simple);
goto out;
}
else
{
- g_simple_async_result_set_from_error (data->simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
g_simple_async_result_complete_in_idle (data->simple);
async_init_data_free (data);
goto out;
failed:
g_warn_if_fail (error != NULL);
- g_simple_async_result_set_from_error (data->simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
g_simple_async_result_complete_in_idle (data->simple);
async_init_data_free (data);
}
data->callback,
data->user_data,
NULL);
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete_in_idle (simple);
g_object_unref (simple);
}
&error);
if (error != NULL)
{
- g_simple_async_result_set_from_error (simple,
- error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
}
else
{
if (proxies == NULL)
{
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
}
else
{
info = g_file_query_info (G_FILE (object), data->attributes, data->flags, cancellable, &error);
if (info == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->info = info;
}
info = g_file_query_filesystem_info (G_FILE (object), data->attributes, cancellable, &error);
if (info == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->info = info;
}
enumerator = g_file_enumerate_children (G_FILE (object), data->attributes, data->flags, cancellable, &error);
if (enumerator == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->enumerator = enumerator;
}
G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported"));
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
+ g_simple_async_result_take_error (res, error);
return;
}
stream = iface->read_fn (G_FILE (object), cancellable, &error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
}
stream = iface->append_to (G_FILE (object), *data, cancellable, &error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
}
stream = iface->create (G_FILE (object), *data, cancellable, &error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
}
&error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->stream = stream;
}
G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported"));
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
+ g_simple_async_result_take_error (res, error);
return;
}
stream = iface->open_readwrite (G_FILE (object), cancellable, &error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
}
G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported"));
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
+ g_simple_async_result_take_error (res, error);
return;
}
stream = iface->create_readwrite (G_FILE (object), *data, cancellable, &error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
}
&error);
if (stream == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->stream = stream;
}
file = g_file_set_display_name (G_FILE (object), data->name, cancellable, &error);
if (file == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->file = file;
}
mount = g_file_find_enclosing_mount (G_FILE (object), cancellable, &error);
if (mount == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
g_simple_async_result_set_op_res_gpointer (res, mount, (GDestroyNotify)g_object_unref);
}
NULL, NULL);
if (!result)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
g_simple_async_result_complete_in_idle (res);
}
else
{
- res = g_simple_async_result_new_from_error (G_OBJECT (data->file),
+ res = g_simple_async_result_new_take_error (G_OBJECT (data->file),
data->callback,
data->user_data,
error);
g_simple_async_result_complete (res);
- g_error_free (error);
load_contents_data_free (data);
g_object_unref (res);
}
}
else
{
- res = g_simple_async_result_new_from_error (G_OBJECT (data->file),
+ res = g_simple_async_result_new_take_error (G_OBJECT (data->file),
data->callback,
data->user_data,
error);
g_simple_async_result_complete (res);
- g_error_free (error);
replace_contents_data_free (data);
g_object_unref (res);
}
class = G_FILE_ENUMERATOR_GET_CLASS (object);
result = class->close_fn (G_FILE_ENUMERATOR (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);
}
if (stream == NULL)
{
- simple = g_simple_async_result_new_from_error (G_OBJECT (data->icon),
+ simple = g_simple_async_result_new_take_error (G_OBJECT (data->icon),
data->callback,
data->user_data,
error);
- g_error_free (error);
}
else
{
_("Stream doesn't support query_info"));
if (info == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->info = info;
}
_("Stream doesn't support query_info"));
if (info == NULL)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
else
data->info = info;
}
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
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 {
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 */
{
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);
}
}
{
result = class->close_fn (G_IO_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);
}
}
if (stream == NULL)
{
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
+ g_simple_async_result_take_error (res, error);
}
else
{
{
if (error)
{
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
}
else
{
GSimpleAsyncResult *simple = srv_enum->result;
srv_enum->result = NULL;
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
g_simple_async_result_complete (simple);
g_object_unref (simple);
}
if (srv_enum->error)
{
- g_simple_async_result_set_from_error (simple, srv_enum->error);
- g_error_free (srv_enum->error);
+ g_simple_async_result_take_error (simple, srv_enum->error);
srv_enum->error = NULL;
}
{
GSimpleAsyncResult *err;
- err = g_simple_async_result_new_from_error (source_object,
+ err = g_simple_async_result_new_take_error (source_object,
stream->priv->outstanding_callback,
data->user_data,
data->flush_error);
+ data->flush_error = NULL;
(*stream->priv->outstanding_callback) (source_object,
G_ASYNC_RESULT (err),
op->count_written = class->write_fn (G_OUTPUT_STREAM (object), op->buffer, op->count_requested,
cancellable, &error);
if (op->count_written == -1)
- {
- g_simple_async_result_set_from_error (res, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (res, error);
}
static void
cancellable,
&error);
if (op->bytes_copied == -1)
- {
- g_simple_async_result_set_from_error (result, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (result, error);
}
static void
result = class->flush (G_OUTPUT_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);
}
static void
result = class->close_fn (G_OUTPUT_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);
}
}
result,
&error);
if (priv->dest_ips)
- {
- save_result (priv);
- }
+ save_result (priv);
else
- {
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (simple, error);
complete_async (priv);
}
}
if (error)
- {
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (simple, error);
complete_async (priv);
}
if (error)
{
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (simple, error);
}
else
{
if (address)
g_simple_async_result_set_op_res_gpointer (result, address, NULL);
else if (error)
- {
- g_simple_async_result_set_from_error (result, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (result, error);
+
g_simple_async_result_complete_in_idle (result);
g_object_unref (result);
}
{
if (data->last_error)
{
- g_simple_async_result_set_from_error (data->result, data->last_error);
- g_error_free (data->last_error);
+ g_simple_async_result_take_error (data->result, data->last_error);
}
else
{
g_simple_async_result_set_op_res_gssize (simple, result);
if (error)
- {
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (simple, error);
if (stream->priv->cancellable)
g_object_unref (stream->priv->cancellable);
}
else
{
- g_simple_async_result_set_from_error (data->simple, error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
}
g_simple_async_result_complete_in_idle (data->simple);
g_simple_async_result_set_op_res_gssize (simple, result);
if (error)
- {
- g_simple_async_result_set_from_error (simple, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (simple, error);
if (stream->priv->cancellable)
g_object_unref (stream->priv->cancellable);
complete_async_from_error (ConnectAsyncData *data, GError *error)
{
GSimpleAsyncResult *simple = data->simple;
- g_simple_async_result_set_from_error (data->simple,
- error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
g_simple_async_result_set_op_res_gpointer (simple, NULL, NULL);
g_simple_async_result_complete (simple);
g_object_unref (simple);
if (data->length < 0)
{
- g_simple_async_result_set_from_error (data->simple,
- error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
g_simple_async_result_set_op_res_gpointer (simple, NULL, NULL);
g_simple_async_result_complete_in_idle (simple);
g_object_unref (simple);
complete_async_from_error (ConnectAsyncData *data, GError *error)
{
GSimpleAsyncResult *simple = data->simple;
- g_simple_async_result_set_from_error (data->simple,
- error);
- g_error_free (error);
+ g_simple_async_result_take_error (data->simple, error);
g_simple_async_result_set_op_res_gpointer (simple, NULL, NULL);
g_simple_async_result_complete (simple);
g_object_unref (simple);
static void
async_close_finish (CloseAsyncData *data,
- GError *error,
+ GError *error /* consumed */,
gboolean in_mainloop)
{
GIOStreamClass *parent = G_IO_STREAM_CLASS (g_tcp_connection_parent_class);
if (error)
{
parent->close_fn (stream, data->cancellable, NULL);
- g_simple_async_result_set_from_error (data->res, error);
+ g_simple_async_result_take_error (data->res, error);
}
else
{
my_error = NULL;
parent->close_fn (stream, data->cancellable, &my_error);
if (my_error)
- {
- g_simple_async_result_set_from_error (data->res, my_error);
- g_error_free (my_error);
- }
+ g_simple_async_result_take_error (data->res, my_error);
}
if (in_mainloop)
else
{
async_close_finish (data, error, TRUE);
- g_error_free (error);
return FALSE;
}
}
if (!g_socket_shutdown (socket, FALSE, TRUE, &error))
{
async_close_finish (data, error, FALSE);
- g_error_free (error);
close_async_data_free (data);
return;
}
g_simple_async_result_set_op_res_gssize (simple, count_read);
if (count_read == -1)
- {
- 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 */
g_simple_async_result_complete (simple);
g_unix_input_stream_close_async);
if (!result)
- {
- 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 */
g_simple_async_result_complete (simple);
handle_error:
if (error != NULL) {
GSimpleAsyncResult *simple;
- simple = g_simple_async_result_new_from_error (G_OBJECT (data->unix_mount),
+ simple = g_simple_async_result_new_take_error (G_OBJECT (data->unix_mount),
data->callback,
data->user_data,
error);
g_io_channel_unref (data->error_channel);
g_strfreev (data->argv);
- g_error_free (error);
g_free (data);
}
g_simple_async_result_set_op_res_gssize (simple, count_written);
if (count_written == -1)
- {
- 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 */
g_simple_async_result_complete (simple);
g_unix_output_stream_close_async);
if (!result)
- {
- 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 */
g_simple_async_result_complete (simple);
req->qy = NULL;
g_cancellable_set_error_if_cancelled (cancellable, &error);
- g_simple_async_result_set_from_error (req->async_result, error);
- g_error_free (error);
+ g_simple_async_result_take_error (req->async_result, error);
g_unix_resolver_request_complete (req);
}
freeaddrinfo (res);
if (error)
- {
- g_simple_async_result_set_from_error (req->async_result, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (req->async_result, error);
}
static void
host, retval, &error);
if (error)
- {
- g_simple_async_result_set_from_error (req->async_result, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (req->async_result, error);
}
static void
_g_asyncns_freeanswer (answer);
if (error)
- {
- g_simple_async_result_set_from_error (req->async_result, error);
- g_error_free (error);
- }
+ g_simple_async_result_take_error (req->async_result, error);
}
static void
if (error != NULL)
{
GSimpleAsyncResult *simple;
- simple = g_simple_async_result_new_from_error (G_OBJECT (data->unix_volume),
+ simple = g_simple_async_result_new_take_error (G_OBJECT (data->unix_volume),
data->callback,
data->user_data,
error);
if (data->error_channel != NULL)
g_io_channel_unref (data->error_channel);
- g_error_free (error);
g_free (data);
}
}