-static gboolean
-pollable_source_prepare (GSource *source,
- gint *timeout)
-{
- *timeout = -1;
- return FALSE;
-}
-
-static gboolean
-pollable_source_check (GSource *source)
-{
- return FALSE;
-}
-
-static gboolean
-pollable_source_dispatch (GSource *source,
- GSourceFunc callback,
- gpointer user_data)
-{
- GPollableSourceFunc func = (GPollableSourceFunc)callback;
- GPollableSource *pollable_source = (GPollableSource *)source;
-
- return (*func) (pollable_source->stream, user_data);
-}
-
-static void
-pollable_source_finalize (GSource *source)
-{
- GPollableSource *pollable_source = (GPollableSource *)source;
-
- g_object_unref (pollable_source->stream);
-}
-
-static gboolean
-pollable_source_closure_callback (GObject *stream,
- gpointer data)
-{
- GClosure *closure = data;
-
- GValue param = { 0, };
- GValue result_value = { 0, };
- gboolean result;
-
- g_value_init (&result_value, G_TYPE_BOOLEAN);
-
- g_value_init (¶m, G_TYPE_OBJECT);
- g_value_set_object (¶m, stream);
-
- g_closure_invoke (closure, &result_value, 1, ¶m, NULL);
-
- result = g_value_get_boolean (&result_value);
- g_value_unset (&result_value);
- g_value_unset (¶m);
-
- return result;
-}
+ if (((gssize) count) < 0)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
+ _("Too large count value passed to %s"), G_STRFUNC);
+ return -1;
+ }