diff options
| author | Alon Levy <alevy@redhat.com> | 2012-07-22 11:35:05 +0300 |
|---|---|---|
| committer | Alon Levy <alevy@redhat.com> | 2012-07-22 13:37:44 +0300 |
| commit | 7863b18cd79ac3d82e263f4331f3551e7a75ebaa (patch) | |
| tree | 374b71e0f7f533bd584690dcc4d47723461287e9 | |
| parent | 827f40e05c0340293711f1cd7f164abcc1da8789 (diff) | |
server/red_worker: release bad drawables
| -rw-r--r-- | server/red_worker.c | 5 |
1 files 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; |
