From 8da795de4f04dad35029a36c155d0b299d739840 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Thu, 13 Feb 2014 17:07:07 -0500 Subject: [PATCH] gsocket: use check/prepare only on win32 There is no longer any code left in the check/prepare functions on UNIX, so put %NULL in the GSourceFuncs vtable. This also allows us to simplify some logic. https://bugzilla.gnome.org/show_bug.cgi?id=724707 --- gio/gsocket.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/gio/gsocket.c b/gio/gsocket.c index 0ec885485..4590c38dd 100644 --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -3213,31 +3213,26 @@ typedef struct { GIOCondition condition; } GSocketSource; +#ifdef G_OS_WIN32 static gboolean -socket_source_prepare (GSource *source, - gint *timeout) +socket_source_prepare_win32 (GSource *source, + gint *timeout) { GSocketSource *socket_source = (GSocketSource *)source; *timeout = -1; -#ifdef G_OS_WIN32 - socket_source->pollfd.revents = update_condition (socket_source->socket); - - if ((socket_source->condition & socket_source->pollfd.revents) != 0) - return TRUE; -#endif - - return FALSE; + return (update_condition (socket_source->socket) & socket_source->condition) != 0; } static gboolean -socket_source_check (GSource *source) +socket_source_check_win32 (GSource *source) { int timeout; - return socket_source_prepare (source, &timeout); + return socket_source_prepare_win32 (source, &timeout); } +#endif static gboolean socket_source_dispatch (GSource *source, @@ -3319,8 +3314,12 @@ socket_source_closure_callback (GSocket *socket, static GSourceFuncs socket_source_funcs = { - socket_source_prepare, - socket_source_check, +#ifdef G_OS_WIN32 + socket_source_prepare_win32, + socket_source_check_win32, +#else + NULL, NULL, /* check, prepare */ +#endif socket_source_dispatch, socket_source_finalize, (GSourceFunc)socket_source_closure_callback, -- 2.11.4.GIT