GDBusWorker: continue_writing: initialize flush_async_data if closing

This was a regression in commits f41178c6c and d0d04c09: flush_async_data
wasn't necessarily NULL in the "don't flush" case.

Also move initialization of these variables up so that it's
unconditional, since that's easier to verify than checking
that each branch gets it right.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=664617
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
This commit is contained in:
Simon McVittie
2011-11-23 11:20:15 +00:00
parent d09677881b
commit a8ee10cc7d

View File

@@ -1444,6 +1444,9 @@ continue_writing (GDBusWorker *worker)
g_mutex_lock (worker->write_lock);
data = NULL;
flush_async_data = NULL;
/* if we want to close the connection, that takes precedence */
if (worker->pending_close_attempts != NULL)
{
@@ -1453,7 +1456,6 @@ continue_writing (GDBusWorker *worker)
g_io_stream_close_async (worker->stream, G_PRIORITY_DEFAULT,
NULL, iostream_close_cb,
_g_dbus_worker_ref (worker));
data = NULL;
}
else
{
@@ -1466,10 +1468,6 @@ continue_writing (GDBusWorker *worker)
if (data != NULL)
worker->output_pending = PENDING_WRITE;
}
else
{
data = NULL;
}
}
g_mutex_unlock (worker->write_lock);