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
This commit is contained in:
Ryan Lortie 2014-02-13 16:58:34 -05:00
parent ff96f88e17
commit 1f7100506a

View File

@ -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);
ret = (*func) (socket,
socket_source->pollfd.revents & socket_source->condition,
user_data);
if (socket_source->socket->priv->timed_out)
events |= socket_source->condition & (G_IO_IN | G_IO_OUT);
ret = (*func) (socket, events & socket_source->condition, user_data);
if (socket->priv->timeout)
socket_source->timeout_time = g_get_monotonic_time () +