summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-10-01 18:07:09 +0200
committerFrediano Ziglio <fziglio@redhat.com>2015-09-29 18:59:54 +0100
commitbb969255c99a2bc1c99a38f7992893a16b604661 (patch)
tree174161bdcb5f40b63f3ed52a0dce5a2bbbcb4a01
parent61d458119e3f34085fd4e362861c815f39d40a00 (diff)
worker: count in drawable_new()
-rw-r--r--server/red_worker.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 782028b..2efb311 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -4083,7 +4083,6 @@ static Drawable *get_drawable(RedWorker *worker, uint8_t effect, RedDrawable *re
free_one_drawable(worker, FALSE);
}
worker->drawable_count++;
- worker->red_drawable_count++;
memset(drawable, 0, sizeof(Drawable));
drawable->refs = 1;
clock_gettime(CLOCK_MONOTONIC, &time);
@@ -4998,11 +4997,13 @@ static int red_process_cursor(RedWorker *worker, uint32_t max_pipe_size, int *ri
return n;
}
-static RedDrawable *red_drawable_new(void)
+static RedDrawable *red_drawable_new(RedWorker *worker)
{
RedDrawable * red = spice_new0(RedDrawable, 1);
red->refs = 1;
+ worker->red_drawable_count++;
+
return red;
}
@@ -5045,7 +5046,7 @@ static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int *
worker->repoll_cmd_ring = 0;
switch (ext_cmd.cmd.type) {
case QXL_CMD_DRAW: {
- RedDrawable *red_drawable = red_drawable_new(); // returns with 1 ref
+ RedDrawable *red_drawable = red_drawable_new(worker); // returns with 1 ref
if (!red_get_drawable(&worker->mem_slots, ext_cmd.group_id,
red_drawable, ext_cmd.cmd.data, ext_cmd.flags)) {