[glib] gsocket: don't abuse GPollFD.revents field



commit 1f7100506a51584e66930851c5243fd2eaee5c35
Author: Ryan Lortie <desrt desrt ca>
Date:   Thu Feb 13 16:58:34 2014 -0500

    gsocket: don't abuse GPollFD.revents field
    
    We are reusing the GPollFD.revents field of the source to store a
    temporary value.  Use a local variable for that instead.
    
    This is a refactor to make the next commit easier to understand.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/gio/gsocket.c b/gio/gsocket.c
index 79aab0e..c7262d6 100644
--- a/gio/gsocket.c
+++ b/gio/gsocket.c
@@ -3259,17 +3259,19 @@ socket_source_dispatch (GSource     *source,
   GSocketSourceFunc func = (GSocketSourceFunc)callback;
   GSocketSource *socket_source = (GSocketSource *)source;
   GSocket *socket = socket_source->socket;
+  guint events;
   gboolean ret;
 
 #ifdef G_OS_WIN32
-  socket_source->pollfd.revents = update_condition (socket_source->socket);
+  events = update_condition (socket_source->socket);
+#else
+  events = socket_source->pollfd.revents;
 #endif
+
   if (socket_source->socket->priv->timed_out)
-    socket_source->pollfd.revents |= socket_source->condition & (G_IO_IN | G_IO_OUT);
+    events |= socket_source->condition & (G_IO_IN | G_IO_OUT);
 
-  ret = (*func) (socket,
-                socket_source->pollfd.revents & socket_source->condition,
-                user_data);
+  ret = (*func) (socket, events & socket_source->condition, user_data);
 
   if (socket->priv->timeout)
     socket_source->timeout_time = g_get_monotonic_time () +


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]