gio: callback_data is the task not the task data.

skip_callback_wrapper expect the user_data (callback_data)
to be the task holding the task_data, not the task_data
itself.
Otherwise the task_data is cast as GTask and then task_data
is extracted from this bogus task.

https://bugzilla.gnome.org/show_bug.cgi?id=691812
This commit is contained in:
Alban Browaeys 2013-01-16 00:04:58 +01:00 committed by Dan Winship
parent e1517ca82d
commit acfa6e2337

View File

@ -1234,7 +1234,7 @@ skip_callback_wrapper (GObject *source_object,
data->buffer, MIN (8192, data->count), data->buffer, MIN (8192, data->count),
g_task_get_priority (task), g_task_get_priority (task),
g_task_get_cancellable (task), g_task_get_cancellable (task),
skip_callback_wrapper, data); skip_callback_wrapper, task);
return; return;
} }
} }
@ -1293,7 +1293,7 @@ g_input_stream_real_skip_async (GInputStream *stream,
g_task_set_task_data (task, data, g_free); g_task_set_task_data (task, data, g_free);
g_task_set_check_cancellable (task, FALSE); g_task_set_check_cancellable (task, FALSE);
class->read_async (stream, data->buffer, MIN (8192, count), io_priority, cancellable, class->read_async (stream, data->buffer, MIN (8192, count), io_priority, cancellable,
skip_callback_wrapper, data); skip_callback_wrapper, task);
} }
} }