From 7863b18cd79ac3d82e263f4331f3551e7a75ebaa Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Sun, 22 Jul 2012 11:35:05 +0300 Subject: [PATCH] server/red_worker: release bad drawables --- server/red_worker.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/red_worker.c b/server/red_worker.c index 5634db58..e2397401 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -4843,11 +4843,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;