[libadwaita] avatar: Use auto cleanups for Cairo types



commit a236e252157f023679bc60b1868e988f8629944e
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Thu Jul 22 08:15:41 2021 +0200

    avatar: Use auto cleanups for Cairo types
    
    Let's do it as much as possible.

 src/adw-avatar.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
---
diff --git a/src/adw-avatar.c b/src/adw-avatar.c
index 47755450..cad88ae2 100644
--- a/src/adw-avatar.c
+++ b/src/adw-avatar.c
@@ -42,6 +42,9 @@
  * Since: 1.0
  */
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (cairo_t, cairo_destroy);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (cairo_surface_t, cairo_surface_destroy);
+
 struct _AdwAvatar
 {
   GtkWidget parent_instance;
@@ -700,9 +703,8 @@ adw_avatar_draw_to_pixbuf (AdwAvatar *self,
 {
   GtkSnapshot *snapshot;
   g_autoptr (GskRenderNode) node = NULL;
-  GdkPixbuf *avatar;
-  cairo_surface_t *surface;
-  cairo_t *cr;
+  g_autoptr (cairo_surface_t) surface = NULL;
+  g_autoptr (cairo_t) cr = NULL;
   graphene_rect_t bounds;
 
   g_return_val_if_fail (ADW_IS_AVATAR (self), NULL);
@@ -728,11 +730,7 @@ adw_avatar_draw_to_pixbuf (AdwAvatar *self,
 
   gsk_render_node_draw (node, cr);
 
-  avatar = gdk_pixbuf_get_from_surface (surface, 0, 0,
-                                        bounds.size.width,
-                                        bounds.size.height);
-  cairo_surface_destroy (surface);
-  cairo_destroy (cr);
-
-  return avatar;
+  return gdk_pixbuf_get_from_surface (surface, 0, 0,
+                                      bounds.size.width,
+                                      bounds.size.height);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]