mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-31 02:41:52 +00:00
server/red_worker: red_process_drawable: have single point of exit
(cherry picked from commit c8cefd4a8f)
This commit is contained in:
parent
6a9f2c9453
commit
445364fe7d
@ -3787,23 +3787,19 @@ static inline void red_process_drawable(RedWorker *worker, RedDrawable *drawable
|
||||
red_inc_surfaces_drawable_dependencies(worker, item);
|
||||
|
||||
if (region_is_empty(&item->tree_item.base.rgn)) {
|
||||
release_drawable(worker, item);
|
||||
return;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!red_handle_self_bitmap(worker, item)) {
|
||||
release_drawable(worker, item);
|
||||
return;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!red_handle_depends_on_target_surface(worker, surface_id)) {
|
||||
release_drawable(worker, item);
|
||||
return;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!red_handle_surfaces_dependencies(worker, item)) {
|
||||
release_drawable(worker, item);
|
||||
return;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (red_current_add_qxl(worker, &worker->surfaces[surface_id].current, item,
|
||||
@ -3816,6 +3812,7 @@ static inline void red_process_drawable(RedWorker *worker, RedDrawable *drawable
|
||||
red_draw_qxl_drawable(worker, item);
|
||||
#endif
|
||||
}
|
||||
cleanup:
|
||||
release_drawable(worker, item);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user