From 893862a51a5a8734575000f2c66a5556d52a9f83 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 22 Apr 2023 16:33:35 +0200 Subject: [PATCH] surface: Refactor code Move the early exit conditions to the top and turn them into early exits instead of nesting if statements. --- gdk/gdksurface.c | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index 385f5e3e91..34052799e8 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -1355,46 +1355,36 @@ gdk_surface_paint_on_clock (GdkFrameClock *clock, void *data) { GdkSurface *surface = GDK_SURFACE (data); + cairo_region_t *expose_region; g_return_if_fail (GDK_IS_SURFACE (surface)); - if (GDK_SURFACE_DESTROYED (surface)) + if (GDK_SURFACE_DESTROYED (surface) || + !surface->update_area || + surface->update_freeze_count || + gdk_surface_is_toplevel_frozen (surface)) return; g_object_ref (surface); - if (surface->update_area && - !surface->update_freeze_count && - !gdk_surface_is_toplevel_frozen (surface)) - { - surface->pending_phases &= ~GDK_FRAME_CLOCK_PHASE_PAINT; + surface->pending_phases &= ~GDK_FRAME_CLOCK_PHASE_PAINT; - /* Ensure the surface lives while updating it */ - g_object_ref (surface); - - /* If an update got queued during update processing, we can get a - * surface in the update queue that has an empty update_area. - * just ignore it. - */ - if (surface->update_area) - { - cairo_region_t *expose_region; + /* Ensure the surface lives while updating it */ + g_object_ref (surface); - expose_region = surface->update_area; - surface->update_area = NULL; + expose_region = surface->update_area; + surface->update_area = NULL; - if (GDK_SURFACE_IS_MAPPED (surface)) - { - gboolean handled; + if (GDK_SURFACE_IS_MAPPED (surface)) + { + gboolean handled; - g_signal_emit (surface, signals[RENDER], 0, expose_region, &handled); - } + g_signal_emit (surface, signals[RENDER], 0, expose_region, &handled); + } - cairo_region_destroy (expose_region); - } + cairo_region_destroy (expose_region); - g_object_unref (surface); - } + g_object_unref (surface); g_object_unref (surface); } -- 2.30.2