Re: [PATCH spice-gtk v2] vmcstream: set the right result for the task

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

 



On Wed, Jul 27, 2016 at 11:17:38AM +0200, Fabiano Fidêncio wrote:
> This bogus code was introduced when switching to GTask API. Seems that
> while writing those patches I just overlooked this part and set the wrong
> result for the task. As part of the problems introduced (and now fixed)
> you can notice that no output stream was being sent to the guest.
> 
> Signed-off-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx>
> ---
>  src/vmcstream.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/vmcstream.c b/src/vmcstream.c
> index c536f71..ffb1ba4 100644
> --- a/src/vmcstream.c
> +++ b/src/vmcstream.c
> @@ -411,7 +411,7 @@ write_cb(GObject *source_object,
>  {
>      GTask *task = user_data;
>  
> -    g_task_return_pointer(task, g_object_ref(task), g_object_unref);
> +    g_task_return_pointer(task, g_object_ref(res), g_object_unref);
>  
>      g_object_unref(task);
>  }

You'll also need

diff --git a/src/vmcstream.c b/src/vmcstream.c
index c536f71..32d8b5e 100644
--- a/src/vmcstream.c
+++ b/src/vmcstream.c
@@ -399,9 +399,13 @@ spice_vmc_output_stream_write_finish(GOutputStream *stream,
 {
     SpiceVmcOutputStream *self = SPICE_VMC_OUTPUT_STREAM(stream);
     GAsyncResult *res = g_task_propagate_pointer(G_TASK(simple), error);
+    gssize bytes_written;

     SPICE_DEBUG("spicevmc write finish");
-    return spice_vmc_write_finish(self->channel, res, error);
+    bytes_written = spice_vmc_write_finish(self->channel, res, error);
+    g_object_unref(res);
+
+    return bytes_written;
 }

 static void


(but this is arguably a slightly different bug which was already existing
before your change).

Christophe

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]