summaryrefslogtreecommitdiffstats
path: root/server/red_parse_qxl.c
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2012-05-15 13:36:36 +0300
committerAlon Levy <alevy@redhat.com>2012-05-15 18:01:54 +0300
commit05f4276cc128c500cd88df13e44b4bff7d5d0937 (patch)
tree07967ffc18f0d30bc315a8ae761971a59c901bd0 /server/red_parse_qxl.c
parentcc1fd8eae7a126d9320c4432eb6ebc54b1ffc201 (diff)
downloadspice-05f4276cc128c500cd88df13e44b4bff7d5d0937.tar.gz
spice-05f4276cc128c500cd88df13e44b4bff7d5d0937.tar.xz
spice-05f4276cc128c500cd88df13e44b4bff7d5d0937.zip
server: move self_bitmap_image to RedDrawable
Simplify keeping count of self_bitmap_image by putting it in RedDrawable. It is allocated on reading from the command pipe and deallocated when the last reference to the RedDrawable is dropped, instead of keeping track of it in GlzDrawable and Drawable.
Diffstat (limited to 'server/red_parse_qxl.c')
-rw-r--r--server/red_parse_qxl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index 3abf6389..e6c27053 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -1004,6 +1004,9 @@ int red_get_drawable(RedMemSlotInfo *slots, int group_id,
void red_put_drawable(RedDrawable *red)
{
red_put_clip(&red->clip);
+ if (red->self_bitmap_image) {
+ red_put_image(red->self_bitmap_image);
+ }
switch (red->type) {
case QXL_DRAW_ALPHA_BLEND:
red_put_alpha_blend(&red->u.alpha_blend);