56 lines
1.7 KiB
Diff
56 lines
1.7 KiB
Diff
|
From 968ef5f5ffbe5e694bae3052bea34e9b9d1aef35 Mon Sep 17 00:00:00 2001
|
||
|
From: Simon McVittie <simon.mcvittie@collabora.co.uk>
|
||
|
Date: Wed, 23 Nov 2011 11:20:15 +0000
|
||
|
Subject: [PATCH 1/2] GDBusWorker: continue_writing: initialize
|
||
|
flush_async_data if closing
|
||
|
|
||
|
This was a regression in commit f41178c6c: 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>
|
||
|
---
|
||
|
gio/gdbusprivate.c | 8 +++-----
|
||
|
1 files changed, 3 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
|
||
|
index 178214e..5b3b77d 100644
|
||
|
--- a/gio/gdbusprivate.c
|
||
|
+++ b/gio/gdbusprivate.c
|
||
|
@@ -1441,6 +1441,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)
|
||
|
{
|
||
|
@@ -1450,7 +1453,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
|
||
|
{
|
||
|
@@ -1463,10 +1465,6 @@ continue_writing (GDBusWorker *worker)
|
||
|
if (data != NULL)
|
||
|
worker->output_pending = PENDING_WRITE;
|
||
|
}
|
||
|
- else
|
||
|
- {
|
||
|
- data = NULL;
|
||
|
- }
|
||
|
}
|
||
|
|
||
|
g_mutex_unlock (&worker->write_lock);
|
||
|
--
|
||
|
1.7.7.1
|
||
|
|