summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2015-08-23 17:27:33 +0100
committerFrediano Ziglio <fziglio@redhat.com>2015-08-27 23:50:29 +0100
commit055345d597b17c83f8f99378362bda98cfacabcc (patch)
tree2393f318da694cae22ae3f16fb9b11028bb8a089 /server
parent2d906f222864f8c3506b63f128c4855fb00f63da (diff)
downloadspice-055345d597b17c83f8f99378362bda98cfacabcc.tar.gz
spice-055345d597b17c83f8f99378362bda98cfacabcc.tar.xz
spice-055345d597b17c83f8f99378362bda98cfacabcc.zip
Simplify set_surface_release_info
Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com>
Diffstat (limited to 'server')
-rw-r--r--server/red_worker.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index eeffdd0a..6f14b70f 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -1772,20 +1772,11 @@ static inline void red_destroy_surface(RedWorker *worker, uint32_t surface_id)
}
}
-static inline void set_surface_release_info(RedWorker *worker, uint32_t surface_id, int is_create,
+static inline void set_surface_release_info(QXLReleaseInfoExt *release_info_ext,
QXLReleaseInfo *release_info, uint32_t group_id)
{
- RedSurface *surface;
-
- surface = &worker->surfaces[surface_id];
-
- if (is_create) {
- surface->create.info = release_info;
- surface->create.group_id = group_id;
- } else {
- surface->destroy.info = release_info;
- surface->destroy.group_id = group_id;
- }
+ release_info_ext->info = release_info;
+ release_info_ext->group_id = group_id;
}
static RedDrawable *ref_red_drawable(RedDrawable *drawable)
@@ -4296,12 +4287,12 @@ static inline void red_process_surface(RedWorker *worker, RedSurfaceCmd *surface
reloaded_surface,
// reloaded surfaces will be sent on demand
!reloaded_surface);
- set_surface_release_info(worker, surface_id, 1, surface->release_info, group_id);
+ set_surface_release_info(&red_surface->create, surface->release_info, group_id);
break;
}
case QXL_SURFACE_CMD_DESTROY:
spice_warn_if(!red_surface->context.canvas);
- set_surface_release_info(worker, surface_id, 0, surface->release_info, group_id);
+ set_surface_release_info(&red_surface->destroy, surface->release_info, group_id);
red_handle_depends_on_target_surface(worker, surface_id);
/* note that red_handle_depends_on_target_surface must be called before red_current_clear.
otherwise "current" will hold items that other drawables may depend on, and then