[Spice-devel] [PATCH RFC 14/14] Reuse more validate_surface
Frediano Ziglio
fziglio at redhat.com
Thu Sep 29 08:44:13 UTC 2016
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
server/display-channel.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/server/display-channel.c b/server/display-channel.c
index cf019fe..c4d07f7 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -968,15 +968,15 @@ static void draw_depend_on_me(DisplayChannel *display, RedSurface *surface)
static int validate_drawable_bbox(DisplayChannel *display, RedDrawable *drawable)
{
DrawContext *context;
- uint32_t surface_id = drawable->surface_id;
/* surface_id must be validated before calling into
* validate_drawable_bbox
*/
- if (!display_channel_validate_surface(display, drawable->surface_id)) {
+ RedSurface *surface = display_channel_validate_surface(display, drawable->surface_id);
+ if (!surface) {
return FALSE;
}
- context = &display->priv->surfaces[surface_id].context;
+ context = &surface->context;
if (drawable->bbox.top < 0)
return FALSE;
@@ -1687,12 +1687,11 @@ void display_channel_update(DisplayChannel *display,
QXLRect **qxl_dirty_rects, uint32_t *num_dirty_rects)
{
SpiceRect rect;
- RedSurface *surface;
+ RedSurface *surface = display_channel_validate_surface(display, surface_id);
- spice_return_if_fail(display_channel_validate_surface(display, surface_id));
+ spice_return_if_fail(surface);
red_get_rect_ptr(&rect, area);
- surface = &display->priv->surfaces[surface_id];
display_channel_surface_draw(display, surface, &rect);
if (*qxl_dirty_rects == NULL) {
@@ -1732,11 +1731,10 @@ static void display_channel_destroy_surface(DisplayChannel *display, RedSurface
void display_channel_destroy_surface_wait(DisplayChannel *display, uint32_t surface_id)
{
- if (!display_channel_validate_surface(display, surface_id))
- return;
- RedSurface *surface = &display->priv->surfaces[surface_id];
- if (!surface->context.canvas)
+ RedSurface *surface = display_channel_validate_surface(display, surface_id);
+ if (!surface) {
return;
+ }
draw_depend_on_me(display, surface);
/* note that draw_depend_on_me must be called before current_remove_all.
--
2.7.4
More information about the Spice-devel
mailing list