[Spice-devel,v2,3/3] server/red_worker: release bad drawables

Submitted by Alon Levy on July 22, 2012, 8:39 a.m.

Details

Message ID 1342946363-11928-4-git-send-email-alevy@redhat.com
State Accepted
Commit 7863b18cd79ac3d82e263f4331f3551e7a75ebaa
Headers show

Not browsing as part of any series.

Commit Message

Alon Levy July 22, 2012, 8:39 a.m.
---
 server/red_worker.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/server/red_worker.c b/server/red_worker.c
index 1fe9ada..aca998b 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -4844,11 +4844,10 @@  static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int *
         case QXL_CMD_DRAW: {
             RedDrawable *red_drawable = red_drawable_new(); // returns with 1 ref
 
-            if (red_get_drawable(&worker->mem_slots, ext_cmd.group_id,
+            if (!red_get_drawable(&worker->mem_slots, ext_cmd.group_id,
                                  red_drawable, ext_cmd.cmd.data, ext_cmd.flags)) {
-                break;
+                red_process_drawable(worker, red_drawable, ext_cmd.group_id);
             }
-            red_process_drawable(worker, red_drawable, ext_cmd.group_id);
             // release the red_drawable
             put_red_drawable(worker, red_drawable, ext_cmd.group_id);
             break;