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