[Spice-devel] [PATCH v2 3/3] style: prefer early return to large if blocks
Jonathon Jongsma
jjongsma at redhat.com
Tue Nov 3 12:35:33 PST 2015
---
server/red_worker.c | 46 ++++++++++++++++++++++++----------------------
1 file changed, 24 insertions(+), 22 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 9738e98..e23c460 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -991,11 +991,12 @@ static void release_image_item(ImageItem *item)
static void release_upgrade_item(RedWorker* worker, UpgradeItem *item)
{
- if (!--item->refs) {
- red_worker_drawable_unref(worker, item->drawable);
- free(item->rects);
- free(item);
- }
+ if (--item->refs)
+ return;
+
+ red_worker_drawable_unref(worker, item->drawable);
+ free(item->rects);
+ free(item);
}
static uint8_t *common_alloc_recv_buf(RedChannelClient *rcc, uint16_t type, uint32_t size)
@@ -1192,27 +1193,28 @@ static void red_worker_drawable_unref(RedWorker *worker, Drawable *drawable)
{
RingItem *item, *next;
- if (!--drawable->refs) {
- spice_assert(!drawable->tree_item.shadow);
- spice_assert(ring_is_empty(&drawable->pipes));
+ if (--drawable->refs)
+ return;
- if (drawable->stream) {
- red_detach_stream(worker, drawable->stream, TRUE);
- }
- region_destroy(&drawable->tree_item.base.rgn);
+ spice_return_if_fail(!drawable->tree_item.shadow);
+ spice_return_if_fail(ring_is_empty(&drawable->pipes));
- remove_drawable_dependencies(worker, drawable);
- red_dec_surfaces_drawable_dependencies(worker, drawable);
- red_destroy_surface(worker, drawable->surface_id);
+ if (drawable->stream) {
+ red_detach_stream(worker, drawable->stream, TRUE);
+ }
+ region_destroy(&drawable->tree_item.base.rgn);
- RING_FOREACH_SAFE(item, next, &drawable->glz_ring) {
- SPICE_CONTAINEROF(item, RedGlzDrawable, drawable_link)->drawable = NULL;
- ring_remove(item);
- }
- put_red_drawable(worker, drawable->red_drawable, drawable->group_id);
- free_drawable(worker, drawable);
- worker->drawable_count--;
+ remove_drawable_dependencies(worker, drawable);
+ red_dec_surfaces_drawable_dependencies(worker, drawable);
+ red_destroy_surface(worker, drawable->surface_id);
+
+ RING_FOREACH_SAFE(item, next, &drawable->glz_ring) {
+ SPICE_CONTAINEROF(item, RedGlzDrawable, drawable_link)->drawable = NULL;
+ ring_remove(item);
}
+ put_red_drawable(worker, drawable->red_drawable, drawable->group_id);
+ free_drawable(worker, drawable);
+ worker->drawable_count--;
}
static inline void remove_shadow(RedWorker *worker, DrawItem *item)
--
2.4.3
More information about the Spice-devel
mailing list