[libadwaita/msvc: 10/11] Remove g_auto* usage




commit c2d77ba76d02bd5351db50e501ff048c4ad691ba
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Mon Jul 26 18:58:32 2021 +0800

    Remove g_auto* usage
    
    It is unfortunately a GCCism, so use the traditional method instead.
    Unfortunately the autocleanup compiler extensions are not standard across the
    board.

 demo/adwaita-demo.c                              |  3 +-
 demo/pages/animations/adw-demo-page-animations.c |  4 +-
 demo/pages/avatar/adw-demo-page-avatar.c         | 28 +++++--
 demo/pages/tab-view/adw-tab-view-demo-window.c   | 20 +++--
 demo/pages/toasts/adw-demo-page-toasts.c         | 24 +++---
 src/adw-application.c                            | 10 ++-
 src/adw-avatar.c                                 | 39 +++++++---
 src/adw-carousel-indicator-dots.c                | 11 ++-
 src/adw-carousel-indicator-lines.c               | 11 ++-
 src/adw-combo-row.c                              | 15 +++-
 src/adw-fading-label.c                           |  8 +-
 src/adw-indicator-bin.c                          |  8 +-
 src/adw-preferences-window.c                     | 52 ++++++++-----
 src/adw-settings.c                               | 98 ++++++++++++++----------
 src/adw-style-manager.c                          |  4 +-
 src/adw-swipe-tracker.c                          | 27 ++++---
 src/adw-tab-box.c                                |  7 +-
 src/adw-tab-view.c                               |  8 +-
 src/adw-tab.c                                    |  4 +-
 src/adw-toast.c                                  | 18 +++--
 src/adw-view-switcher.c                          |  7 +-
 tests/test-button-content.c                      |  6 +-
 tests/test-easing.c                              |  9 ++-
 tests/test-leaflet.c                             |  6 +-
 tests/test-status-page.c                         |  6 +-
 tests/test-tab-view.c                            |  9 ++-
 tests/test-toast.c                               | 23 +++---
 tests/test-window-title.c                        |  6 +-
 28 files changed, 306 insertions(+), 165 deletions(-)
---
diff --git a/demo/adwaita-demo.c b/demo/adwaita-demo.c
index e00ca110..54bbb1de 100644
--- a/demo/adwaita-demo.c
+++ b/demo/adwaita-demo.c
@@ -49,7 +49,7 @@ show_about (GSimpleAction *action,
 
   GtkApplication *app = GTK_APPLICATION (user_data);
   GtkWindow *window = gtk_application_get_active_window (app);
-  g_autofree char *version = NULL;
+  char *version;
 
   version = g_strdup_printf ("%s\nRunning against libadwaita %d.%d.%d, GTK %d.%d.%d",
                              ADW_VERSION_S,
@@ -73,6 +73,7 @@ show_about (GSimpleAction *action,
                          "artists", artists,
                          "translator-credits", _("translator-credits"),
                          NULL);
+  g_free (version);
 }
 
 static void
diff --git a/demo/pages/animations/adw-demo-page-animations.c 
b/demo/pages/animations/adw-demo-page-animations.c
index 62476053..0ab807ea 100644
--- a/demo/pages/animations/adw-demo-page-animations.c
+++ b/demo/pages/animations/adw-demo-page-animations.c
@@ -242,12 +242,14 @@ timed_animation_cb (double     value,
 static void
 notify_spring_params_change (AdwDemoPageAnimations *self)
 {
-  g_autoptr (AdwSpringParams) spring_params =
+  AdwSpringParams *spring_params =
     adw_spring_params_new_full (gtk_spin_button_get_value (self->spring_animation_damping),
                                 gtk_spin_button_get_value (self->spring_animation_mass),
                                 gtk_spin_button_get_value (self->spring_animation_stiffness));
 
   adw_spring_animation_set_spring_params (ADW_SPRING_ANIMATION (self->spring_animation), spring_params);
+
+  adw_spring_params_unref (spring_params);
 }
 
 static void
diff --git a/demo/pages/avatar/adw-demo-page-avatar.c b/demo/pages/avatar/adw-demo-page-avatar.c
index 05ad55c6..fb935e06 100644
--- a/demo/pages/avatar/adw-demo-page-avatar.c
+++ b/demo/pages/avatar/adw-demo-page-avatar.c
@@ -68,7 +68,7 @@ static void
 populate_contacts (AdwDemoPageAvatar *self)
 {
   for (int i = 0; i < 30; i++) {
-    g_autofree char *name = create_random_name ();
+    char *name = create_random_name ();
     GtkWidget *contact = adw_action_row_new ();
     GtkWidget *avatar = adw_avatar_new (40, name, TRUE);
 
@@ -78,6 +78,8 @@ populate_contacts (AdwDemoPageAvatar *self)
     adw_preferences_row_set_title (ADW_PREFERENCES_ROW (contact), name);
     adw_action_row_add_prefix (ADW_ACTION_ROW (contact), avatar);
     gtk_list_box_append (self->contacts, contact);
+
+    g_free (name);
   }
 }
 
@@ -87,10 +89,10 @@ open_response_cb (AdwDemoPageAvatar *self,
                   GtkFileChooser    *chooser)
 {
   if (response == GTK_RESPONSE_ACCEPT) {
-    g_autoptr (GFile) file = gtk_file_chooser_get_file (chooser);
-    g_autoptr (GFileInfo) info = NULL;
-    g_autoptr (GdkTexture) texture = NULL;
-    g_autoptr (GError) error = NULL;
+    GFile *file = gtk_file_chooser_get_file (chooser);
+    GFileInfo *info;
+    GdkTexture *texture;
+    GError *error = NULL;
 
     info = g_file_query_info (file,
                               G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
@@ -109,6 +111,11 @@ open_response_cb (AdwDemoPageAvatar *self,
       g_critical ("Failed to create texture from file: %s", error->message);
 
     adw_avatar_set_custom_image (self->avatar, texture ? GDK_PAINTABLE (texture) : NULL);
+
+    g_clear_error (&error);
+    g_clear_object (&info);
+    g_object_unref (texture);
+    g_object_unref (file);
   }
 
   gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (chooser));
@@ -145,12 +152,15 @@ save_response_cb (AdwDemoPageAvatar *self,
                   GtkFileChooser    *chooser)
 {
   if (response == GTK_RESPONSE_ACCEPT) {
-    g_autoptr (GFile) file = gtk_file_chooser_get_file (chooser);
-    g_autoptr (GdkTexture) texture =
+    GFile *file = gtk_file_chooser_get_file (chooser);
+    GdkTexture *texture =
       adw_avatar_draw_to_texture (self->avatar,
                                   gtk_widget_get_scale_factor (GTK_WIDGET (self)));
 
     gdk_texture_save_to_png (texture, g_file_peek_path (file));
+
+    g_object_unref (texture);
+    g_object_unref (file);
   }
 
   gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (chooser));
@@ -192,7 +202,7 @@ adw_demo_page_avatar_class_init (AdwDemoPageAvatarClass *klass)
 static void
 adw_demo_page_avatar_init (AdwDemoPageAvatar *self)
 {
-  g_autofree char *name = NULL;
+  char *name;
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
@@ -201,4 +211,6 @@ adw_demo_page_avatar_init (AdwDemoPageAvatar *self)
 
   populate_contacts (self);
   avatar_remove_cb (self);
+
+  g_free (name);
 }
diff --git a/demo/pages/tab-view/adw-tab-view-demo-window.c b/demo/pages/tab-view/adw-tab-view-demo-window.c
index cda44c92..15078c24 100644
--- a/demo/pages/tab-view/adw-tab-view-demo-window.c
+++ b/demo/pages/tab-view/adw-tab-view-demo-window.c
@@ -106,7 +106,7 @@ tab_new (GSimpleAction *action,
          gpointer       user_data)
 {
   AdwTabViewDemoWindow *self = ADW_TAB_VIEW_DEMO_WINDOW (user_data);
-  g_autofree char *title = NULL;
+  char *title;
   AdwTabPage *page;
   GtkWidget *content;
   GIcon *icon;
@@ -123,6 +123,8 @@ tab_new (GSimpleAction *action,
   gtk_widget_grab_focus (content);
 
   next_page++;
+
+  g_free (title);
 }
 
 static AdwTabPage *
@@ -256,13 +258,15 @@ tab_change_indicator (GSimpleAction *action,
 {
   AdwTabViewDemoWindow *self = ADW_TAB_VIEW_DEMO_WINDOW (user_data);
   gboolean indicator = g_variant_get_boolean (parameter);
-  g_autoptr (GIcon) icon = NULL;
+  GIcon *icon = NULL;
 
   if (indicator)
     icon = get_indicator_icon (get_current_page (self));
 
   adw_tab_page_set_indicator_icon (get_current_page (self), icon);
   g_simple_action_set_state (action, g_variant_new_boolean (indicator));
+
+  g_clear_object (&icon);
 }
 
 static void
@@ -274,9 +278,11 @@ tab_change_icon (GSimpleAction *action,
   gboolean enable_icon = g_variant_get_boolean (parameter);
 
   if (enable_icon) {
-    g_autoptr (GIcon) icon = get_random_icon (self);
+    GIcon *icon = get_random_icon (self);
 
     adw_tab_page_set_icon (get_current_page (self), icon);
+
+    g_object_unref (icon);
   } else {
     adw_tab_page_set_icon (get_current_page (self), NULL);
   }
@@ -290,9 +296,11 @@ tab_refresh_icon (GSimpleAction *action,
                   gpointer       user_data)
 {
   AdwTabViewDemoWindow *self = ADW_TAB_VIEW_DEMO_WINDOW (user_data);
-  g_autoptr (GIcon) icon = get_random_icon (self);
+  GIcon *icon = get_random_icon (self);
 
   adw_tab_page_set_icon (get_current_page (self), icon);
+
+  g_object_unref (icon);
 }
 
 static void
@@ -436,7 +444,7 @@ static void
 indicator_activated_cb (AdwTabViewDemoWindow *self,
                         AdwTabPage           *page)
 {
-  g_autoptr (GIcon) icon = NULL;
+  GIcon *icon;
   gboolean muted;
 
   muted = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (page),
@@ -449,6 +457,8 @@ indicator_activated_cb (AdwTabViewDemoWindow *self,
   icon = get_indicator_icon (page);
 
   adw_tab_page_set_indicator_icon (page, icon);
+
+  g_object_unref (icon);
 }
 
 static gboolean
diff --git a/demo/pages/toasts/adw-demo-page-toasts.c b/demo/pages/toasts/adw-demo-page-toasts.c
index 4b679104..f2304341 100644
--- a/demo/pages/toasts/adw-demo-page-toasts.c
+++ b/demo/pages/toasts/adw-demo-page-toasts.c
@@ -44,11 +44,18 @@ toast_add_cb (AdwDemoPageToasts *self)
 static void
 toast_add_with_button_cb (AdwDemoPageToasts *self)
 {
-  g_autofree char *title = NULL;
+  char *title;
 
   self->toast_undo_items++;
 
-  if (!self->undo_toast) {
+  if (self->undo_toast) {
+    title =
+      g_strdup_printf (ngettext ("<span font_features='tnum=1'>%d</span> item deleted",
+                                 "<span font_features='tnum=1'>%d</span> items deleted",
+                                 self->toast_undo_items), self->toast_undo_items);
+
+    adw_toast_set_title (self->undo_toast, title);
+  } else {
     title = g_strdup_printf (_("‘%s’ deleted"), "Lorem Ipsum");
 
     self->undo_toast = adw_toast_new (title);
@@ -62,16 +69,9 @@ toast_add_with_button_cb (AdwDemoPageToasts *self)
     add_toast (self, self->undo_toast);
 
     gtk_widget_action_set_enabled (GTK_WIDGET (self), "toast.dismiss", TRUE);
-
-    return;
   }
 
-  title =
-    g_strdup_printf (ngettext ("<span font_features='tnum=1'>%d</span> item deleted",
-                               "<span font_features='tnum=1'>%d</span> items deleted",
-                               self->toast_undo_items), self->toast_undo_items);
-
-  adw_toast_set_title (self->undo_toast, title);
+  g_free (title);
 }
 
 static void
@@ -124,7 +124,7 @@ adw_demo_page_toasts_init (AdwDemoPageToasts *self)
 void
 adw_demo_page_toasts_undo (AdwDemoPageToasts *self)
 {
-  g_autofree char *title =
+  char *title =
     g_strdup_printf (ngettext ("Undoing deleting <span font_features='tnum=1'>%d</span> item…",
                                "Undoing deleting <span font_features='tnum=1'>%d</span> items…",
                                self->toast_undo_items), self->toast_undo_items);
@@ -133,4 +133,6 @@ adw_demo_page_toasts_undo (AdwDemoPageToasts *self)
   adw_toast_set_priority (toast, ADW_TOAST_PRIORITY_HIGH);
 
   add_toast (self, toast);
+
+  g_free (title);
 }
diff --git a/src/adw-application.c b/src/adw-application.c
index 0c2dc412..ee9c04ef 100644
--- a/src/adw-application.c
+++ b/src/adw-application.c
@@ -111,10 +111,9 @@ static void
 init_providers (AdwApplication *self)
 {
   AdwApplicationPrivate *priv = adw_application_get_instance_private (self);
-
-  const char *base_path = NULL;
-  g_autofree char *base_uri = NULL;
-  g_autoptr (GFile) base_file = NULL;
+  const char *base_path;
+  char *base_uri;
+  GFile *base_file;
 
   base_path = g_application_get_resource_base_path (G_APPLICATION (self));
 
@@ -132,6 +131,9 @@ init_providers (AdwApplication *self)
                            g_file_get_child (base_file, "style-hc.css"));
   init_provider_from_file (&priv->hc_dark_style_provider,
                            g_file_get_child (base_file, "style-hc-dark.css"));
+
+  g_object_unref (base_file);
+  g_free (base_uri);
 }
 
 static void
diff --git a/src/adw-avatar.c b/src/adw-avatar.c
index dec89921..bb19c5af 100644
--- a/src/adw-avatar.c
+++ b/src/adw-avatar.c
@@ -83,11 +83,13 @@ static char *
 extract_initials_from_text (const char *text)
 {
   GString *initials;
-  g_autofree char *p = g_utf8_strup (text, -1);
-  g_autofree char *normalized = g_utf8_normalize (g_strstrip (p), -1, G_NORMALIZE_DEFAULT_COMPOSE);
+  char *p = g_utf8_strup (text, -1);
+  char *normalized = g_utf8_normalize (g_strstrip (p), -1, G_NORMALIZE_DEFAULT_COMPOSE);
   gunichar unichar;
   char *q = NULL;
 
+  g_clear_pointer (&p, g_free);
+
   if (normalized == NULL)
     return NULL;
 
@@ -104,6 +106,8 @@ extract_initials_from_text (const char *text)
     g_string_append_unichar (initials, unichar);
   }
 
+  g_free (normalized);
+
   return g_string_free (initials, FALSE);
 }
 
@@ -121,29 +125,33 @@ update_visibility (AdwAvatar *self)
 static void
 set_class_color (AdwAvatar *self)
 {
-  g_autofree GRand *rand = NULL;
-  g_autofree char *new_class = NULL;
-  g_autofree char *old_class = g_strdup_printf ("color%d", self->color_class);
+  char *old_class, *new_class;
 
+  old_class = g_strdup_printf ("color%d", self->color_class);
   gtk_widget_remove_css_class (self->gizmo, old_class);
 
   if (self->text == NULL || strlen (self->text) == 0) {
     /* Use a random color if we don't have a text */
-    rand = g_rand_new ();
+    GRand *rand = g_rand_new ();
+
     self->color_class = g_rand_int_range (rand, 1, NUMBER_OF_COLORS);
+
+    g_rand_free (rand);
   } else {
     self->color_class = (g_str_hash (self->text) % NUMBER_OF_COLORS) + 1;
   }
 
   new_class = g_strdup_printf ("color%d", self->color_class);
-
   gtk_widget_add_css_class (self->gizmo, new_class);
+
+  g_free (old_class);
+  g_free (new_class);
 }
 
 static void
 update_initials (AdwAvatar *self)
 {
-  g_autofree char *initials = NULL;
+  char *initials;
 
   if (gtk_image_get_paintable (self->custom_image) != NULL ||
       !self->show_initials ||
@@ -154,6 +162,8 @@ update_initials (AdwAvatar *self)
   initials = extract_initials_from_text (self->text);
 
   gtk_label_set_label (self->label, initials);
+
+  g_free (initials);
 }
 
 static void
@@ -633,7 +643,7 @@ adw_avatar_set_custom_image (AdwAvatar    *self,
       gtk_image_set_from_paintable (self->custom_image, custom_image);
     } else {
       GtkSnapshot *snapshot = gtk_snapshot_new ();
-      g_autoptr (GdkPaintable) square_image = NULL;
+      GdkPaintable *square_image;
       int size = MIN (width, height);
 
       gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT ((size - width) / 2.f, (size - height) / 2.f));
@@ -641,6 +651,8 @@ adw_avatar_set_custom_image (AdwAvatar    *self,
 
       square_image = gtk_snapshot_free_to_paintable (snapshot, &GRAPHENE_SIZE_INIT (size, size));
       gtk_image_set_from_paintable (self->custom_image, square_image);
+
+      g_object_unref (square_image);
     }
 
     gtk_widget_add_css_class (self->gizmo, "image");
@@ -724,7 +736,8 @@ GdkTexture *
 adw_avatar_draw_to_texture (AdwAvatar *self,
                             int        scale_factor)
 {
-  g_autoptr (GskRenderNode) node = NULL;
+  GdkTexture *result;
+  GskRenderNode *node;
   GtkSnapshot *snapshot;
   GtkNative *native;
   GskRenderer *renderer;
@@ -744,5 +757,9 @@ adw_avatar_draw_to_texture (AdwAvatar *self,
   native = gtk_widget_get_native (GTK_WIDGET (self));
   renderer = gtk_native_get_renderer (native);
 
-  return gsk_renderer_render_texture (renderer, node, &GRAPHENE_RECT_INIT (0, 0, size, size));
+  result = gsk_renderer_render_texture (renderer, node, &GRAPHENE_RECT_INIT (0, 0, size, size));
+
+  gsk_render_node_unref (node);
+
+  return result;
 }
diff --git a/src/adw-carousel-indicator-dots.c b/src/adw-carousel-indicator-dots.c
index b2c33893..a23b8ab8 100644
--- a/src/adw-carousel-indicator-dots.c
+++ b/src/adw-carousel-indicator-dots.c
@@ -222,8 +222,7 @@ adw_carousel_indicator_dots_snapshot (GtkWidget   *widget,
   AdwCarouselIndicatorDots *self = ADW_CAROUSEL_INDICATOR_DOTS (widget);
   int i, n_points;
   double position;
-  g_autofree double *points = NULL;
-  g_autofree double *sizes = NULL;
+  double *points, *sizes;
 
   if (!self->carousel)
     return;
@@ -231,8 +230,11 @@ adw_carousel_indicator_dots_snapshot (GtkWidget   *widget,
   points = adw_swipeable_get_snap_points (ADW_SWIPEABLE (self->carousel), &n_points);
   position = adw_carousel_get_position (self->carousel);
 
-  if (n_points < 2)
+  if (n_points < 2) {
+    g_free (points);
+
     return;
+  }
 
   if (self->orientation == GTK_ORIENTATION_HORIZONTAL &&
       gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
@@ -245,6 +247,9 @@ adw_carousel_indicator_dots_snapshot (GtkWidget   *widget,
     sizes[i] = points[i] - points[i - 1];
 
   snapshot_dots (widget, snapshot, self->orientation, position, sizes, n_points);
+
+  g_free (sizes);
+  g_free (points);
 }
 
 static void
diff --git a/src/adw-carousel-indicator-lines.c b/src/adw-carousel-indicator-lines.c
index c569268d..bf851049 100644
--- a/src/adw-carousel-indicator-lines.c
+++ b/src/adw-carousel-indicator-lines.c
@@ -207,8 +207,7 @@ adw_carousel_indicator_lines_snapshot (GtkWidget   *widget,
   AdwCarouselIndicatorLines *self = ADW_CAROUSEL_INDICATOR_LINES (widget);
   int i, n_points;
   double position;
-  g_autofree double *points = NULL;
-  g_autofree double *sizes = NULL;
+  double *points, *sizes;
 
   if (!self->carousel)
     return;
@@ -216,8 +215,11 @@ adw_carousel_indicator_lines_snapshot (GtkWidget   *widget,
   points = adw_swipeable_get_snap_points (ADW_SWIPEABLE (self->carousel), &n_points);
   position = adw_carousel_get_position (self->carousel);
 
-  if (n_points < 2)
+  if (n_points < 2) {
+    g_free (points);
+
     return;
+  }
 
   if (self->orientation == GTK_ORIENTATION_HORIZONTAL &&
       gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
@@ -230,6 +232,9 @@ adw_carousel_indicator_lines_snapshot (GtkWidget   *widget,
     sizes[i] = points[i] - points[i - 1];
 
   snapshot_lines (widget, snapshot, self->orientation, position, sizes, n_points);
+
+  g_free (sizes);
+  g_free (points);
 }
 
 static void
diff --git a/src/adw-combo-row.c b/src/adw-combo-row.c
index 2b541ad7..64878116 100644
--- a/src/adw-combo-row.c
+++ b/src/adw-combo-row.c
@@ -119,10 +119,13 @@ selection_changed (AdwComboRow *self)
 
   if (priv->use_subtitle) {
     if (g_list_model_get_n_items (G_LIST_MODEL (priv->current_selection)) > 0) {
-      g_autoptr (GtkListItem) item = g_list_model_get_item (G_LIST_MODEL (priv->current_selection), 0);
-      g_autofree char *repr = get_item_representation (self, item);
+      GtkListItem *item = g_list_model_get_item (G_LIST_MODEL (priv->current_selection), 0);
+      char *repr = get_item_representation (self, item);
 
       adw_action_row_set_subtitle (ADW_ACTION_ROW (self), repr);
+
+      g_free (repr);
+      g_object_unref (item);
     } else {
       adw_action_row_set_subtitle (ADW_ACTION_ROW (self), NULL);
     }
@@ -226,7 +229,7 @@ bind_item (GtkSignalListItemFactory *factory,
   gpointer item;
   GtkWidget *box;
   GtkWidget *icon;
-  g_autofree char *repr = NULL;
+  char *repr;
 
   item = gtk_list_item_get_item (list_item);
   box = gtk_list_item_get_child (list_item);
@@ -250,6 +253,8 @@ bind_item (GtkSignalListItemFactory *factory,
   } else {
     gtk_widget_hide (icon);
   }
+
+  g_clear_pointer (&repr, g_free);
 }
 
 static void
@@ -263,13 +268,15 @@ unbind_item (GtkSignalListItemFactory *factory,
 static void
 set_default_factory (AdwComboRow *self)
 {
-  g_autoptr (GtkListItemFactory) factory = gtk_signal_list_item_factory_new ();
+  GtkListItemFactory *factory = gtk_signal_list_item_factory_new ();
 
   g_signal_connect (factory, "setup", G_CALLBACK (setup_item), self);
   g_signal_connect (factory, "bind", G_CALLBACK (bind_item), self);
   g_signal_connect (factory, "unbind", G_CALLBACK (unbind_item), self);
 
   adw_combo_row_set_factory (self, factory);
+
+  g_object_unref (factory);
 }
 
 static void
diff --git a/src/adw-fading-label.c b/src/adw-fading-label.c
index 08d0cf01..e9a685e1 100644
--- a/src/adw-fading-label.c
+++ b/src/adw-fading-label.c
@@ -60,7 +60,7 @@ ensure_shader (AdwFadingLabel *self)
 {
   GtkNative *native;
   GskRenderer *renderer;
-  g_autoptr (GError) error = NULL;
+  GError *error = NULL;
 
   if (self->shader)
     return;
@@ -78,6 +78,8 @@ ensure_shader (AdwFadingLabel *self)
     if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED))
       g_critical ("Couldn't compile shader: %s\n", error->message);
   }
+
+  g_clear_error (&error);
 }
 
 static void
@@ -128,7 +130,7 @@ adw_fading_label_snapshot (GtkWidget   *widget,
   int width = gtk_widget_get_width (widget);
   int clipped_size;
   GtkSnapshot *child_snapshot;
-  g_autoptr (GskRenderNode) node = NULL;
+  GskRenderNode *node;
   graphene_rect_t bounds;
 
   if (width <= 0)
@@ -170,6 +172,8 @@ adw_fading_label_snapshot (GtkWidget   *widget,
     gtk_snapshot_gl_shader_pop_texture (snapshot);
 
   gtk_snapshot_pop (snapshot);
+
+  gsk_render_node_unref (node);
 }
 
 static void
diff --git a/src/adw-indicator-bin.c b/src/adw-indicator-bin.c
index 6f79f2bc..cc2c7e16 100644
--- a/src/adw-indicator-bin.c
+++ b/src/adw-indicator-bin.c
@@ -62,7 +62,7 @@ ensure_shader (AdwIndicatorBin *self)
 {
   GtkNative *native;
   GskRenderer *renderer;
-  g_autoptr (GError) error = NULL;
+  GError *error = NULL;
 
   if (self->shader)
     return;
@@ -80,6 +80,8 @@ ensure_shader (AdwIndicatorBin *self)
     if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED))
       g_critical ("Couldn't compile shader: %s\n", error->message);
   }
+
+  g_clear_error (&error);
 }
 
 static gboolean
@@ -167,7 +169,7 @@ adw_indicator_bin_snapshot (GtkWidget   *widget,
 
   if (self->child) {
     GtkSnapshot *child_snapshot;
-    g_autoptr (GskRenderNode) child_node = NULL;
+    GskRenderNode *child_node;
 
     child_snapshot = gtk_snapshot_new ();
     gtk_widget_snapshot_child (widget, self->child, child_snapshot);
@@ -193,6 +195,8 @@ adw_indicator_bin_snapshot (GtkWidget   *widget,
 
       gtk_snapshot_pop (snapshot);
     }
+
+    gsk_render_node_unref (child_node);
   }
 
   gtk_widget_snapshot_child (widget, self->indicator, snapshot);
diff --git a/src/adw-preferences-window.c b/src/adw-preferences-window.c
index 3a074d41..bb69eeb5 100644
--- a/src/adw-preferences-window.c
+++ b/src/adw-preferences-window.c
@@ -89,7 +89,7 @@ static GParamSpec *props[LAST_PROP];
 static char *
 strip_mnemonic (const char *src)
 {
-  g_autofree char *new_str = g_new (char, strlen (src) + 1);
+  char *new_str = g_new (char, strlen (src) + 1);
   char *dest = new_str;
   gboolean underscore = FALSE;
 
@@ -101,6 +101,8 @@ strip_mnemonic (const char *src)
     if (c == (gunichar) -1) {
       g_warning ("Invalid input string");
 
+      g_free (new_str);
+
       return NULL;
     }
 
@@ -124,7 +126,7 @@ strip_mnemonic (const char *src)
 
   *dest = 0;
 
-  return g_steal_pointer (&new_str);
+  return new_str;
 }
 
 static gboolean
@@ -132,8 +134,8 @@ filter_search_results (AdwPreferencesRow    *row,
                        AdwPreferencesWindow *self)
 {
   AdwPreferencesWindowPrivate *priv = adw_preferences_window_get_instance_private (self);
-  g_autofree char *terms = NULL;
-  g_autofree char *title = NULL;
+  char *terms, *title;
+  gboolean result = FALSE;
 
   g_assert (ADW_IS_PREFERENCES_ROW (row));
 
@@ -145,21 +147,26 @@ filter_search_results (AdwPreferencesRow    *row,
 
     if (stripped_title) {
       g_free (title);
+
       title = stripped_title;
     }
   }
 
-  if (!!strstr (title, terms))
-    return TRUE;
-
-  if (ADW_IS_ACTION_ROW (row)) {
-    g_autofree char *subtitle = g_utf8_casefold (adw_action_row_get_subtitle (ADW_ACTION_ROW (row)), -1);
+  if (!!strstr (title, terms)) {
+    result = TRUE;
+  } else if (ADW_IS_ACTION_ROW (row)) {
+    char *subtitle = g_utf8_casefold (adw_action_row_get_subtitle (ADW_ACTION_ROW (row)), -1);
 
     if (!!strstr (subtitle, terms))
-      return TRUE;
+      result = TRUE;
+
+    g_free (subtitle);
   }
 
-  return FALSE;
+  g_free (title);
+  g_free (terms);
+
+  return result;
 }
 
 static int
@@ -187,7 +194,7 @@ create_search_row_subtitle (AdwPreferencesWindow *self,
 {
   GtkWidget *group, *page;
   const char *group_title = NULL;
-  g_autofree char *page_title = NULL;
+  char *page_title = NULL;
 
   group = gtk_widget_get_ancestor (row, ADW_TYPE_PREFERENCES_GROUP);
 
@@ -209,20 +216,23 @@ create_search_row_subtitle (AdwPreferencesWindow *self,
       page_title = g_strdup (title);
 
     if (g_strcmp0 (page_title, "") == 0)
-      page_title = NULL;
+      g_clear_pointer (&page_title, g_free);
   }
 
   if (group_title) {
+    gchar *result;
+
     if (get_n_pages (self) > 1)
-      return g_strdup_printf ("%s → %s", page_title ? page_title : _("Untitled page"), group_title);
+      result = g_strdup_printf ("%s → %s", page_title ? page_title : _("Untitled page"), group_title);
+    else
+      result = g_strdup (group_title);
 
-    return g_strdup (group_title);
-  }
+    g_free (page_title);
 
-  if (page_title)
-    return g_steal_pointer (&page_title);
+    return result;
+  }
 
-  return NULL;
+  return page_title;
 }
 
 static GtkWidget *
@@ -231,7 +241,7 @@ new_search_row_for_preference (AdwPreferencesRow    *row,
 {
   AdwActionRow *widget;
   GtkWidget *page;
-  g_autofree char *subtitle = NULL;
+  char *subtitle;
 
   g_assert (ADW_IS_PREFERENCES_ROW (row));
 
@@ -247,6 +257,8 @@ new_search_row_for_preference (AdwPreferencesRow    *row,
   g_object_set_data (G_OBJECT (widget), "page", page);
   g_object_set_data (G_OBJECT (widget), "row", row);
 
+  g_clear_pointer (&subtitle, g_free);
+
   return GTK_WIDGET (widget);
 }
 
diff --git a/src/adw-settings.c b/src/adw-settings.c
index 4db10809..11a54bdb 100644
--- a/src/adw-settings.c
+++ b/src/adw-settings.c
@@ -100,11 +100,11 @@ read_portal_setting (AdwSettings  *self,
                      const char   *type,
                      GVariant    **out)
 {
-  g_autoptr (GError) error = NULL;
-  g_autoptr (GVariant) ret = NULL;
-  g_autoptr (GVariant) child = NULL;
-  g_autoptr (GVariant) child2 = NULL;
-  g_autoptr (GVariantType) out_type = NULL;
+  GError *error = NULL;
+  GVariant *ret;
+  GVariant *child, *child2;
+  GVariantType *out_type;
+  gboolean result = FALSE;
 
   ret = g_dbus_proxy_call_sync (self->settings_portal,
                                 "Read",
@@ -117,29 +117,20 @@ read_portal_setting (AdwSettings  *self,
     if (error->domain == G_DBUS_ERROR &&
         error->code == G_DBUS_ERROR_SERVICE_UNKNOWN) {
       g_debug ("Portal not found: %s", error->message);
-
-      return FALSE;
-    }
-
-    if (error->domain == G_DBUS_ERROR &&
-        error->code == G_DBUS_ERROR_UNKNOWN_METHOD) {
+    } else if (error->domain == G_DBUS_ERROR &&
+               error->code == G_DBUS_ERROR_UNKNOWN_METHOD) {
       g_debug ("Portal doesn't provide settings: %s", error->message);
-
-      return FALSE;
-    }
-
-    if (g_dbus_error_is_remote_error (error)) {
-      g_autofree char *remote_error = g_dbus_error_get_remote_error (error);
+    } else if (g_dbus_error_is_remote_error (error)) {
+      char *remote_error = g_dbus_error_get_remote_error (error);
 
       if (!g_strcmp0 (remote_error, PORTAL_ERROR_NOT_FOUND)) {
         g_debug ("Setting %s.%s of type %s not found", schema, name, type);
-
-        return FALSE;
       }
+      g_free (remote_error);
+    } else {
+      g_critical ("Couldn't read the %s setting: %s", name, error->message);
     }
 
-    g_critical ("Couldn't read the %s setting: %s", name, error->message);
-
     return FALSE;
   }
 
@@ -147,16 +138,23 @@ read_portal_setting (AdwSettings  *self,
   g_variant_get (child, "v", &child2);
 
   out_type = g_variant_type_new (type);
-  if (!g_variant_type_equal (g_variant_get_type (child2), out_type)) {
+  if (g_variant_type_equal (g_variant_get_type (child2), out_type)) {
+    *out = child2;
+
+    result = TRUE;
+  } else {
     g_critical ("Invalid type for %s.%s: expected %s, got %s",
                 schema, name, type, g_variant_get_type_string (child2));
 
-    return FALSE;
+    g_variant_unref (child2);
   }
 
-  *out = g_steal_pointer (&child2);
+  g_variant_type_free (out_type);
+  g_variant_unref (child);
+  g_variant_unref (ret);
+  g_clear_error (&error);
 
-  return TRUE;
+  return result;
 }
 
 static AdwSystemColorScheme
@@ -201,7 +199,7 @@ settings_portal_changed_cb (GDBusProxy  *proxy,
 {
   const char *namespace;
   const char *name;
-  g_autoptr (GVariant) value = NULL;
+  GVariant *value = NULL;
 
   if (g_strcmp0 (signal_name, "SettingChanged"))
     return;
@@ -213,6 +211,8 @@ settings_portal_changed_cb (GDBusProxy  *proxy,
       self->color_scheme_use_fdo_setting) {
     set_color_scheme (self, get_fdo_color_scheme (value));
 
+    g_variant_unref (value);
+
     return;
   }
 
@@ -221,6 +221,8 @@ settings_portal_changed_cb (GDBusProxy  *proxy,
       !self->color_scheme_use_fdo_setting) {
     set_color_scheme (self, get_gnome_color_scheme (value));
 
+    g_variant_unref (value);
+
     return;
   }
 
@@ -228,6 +230,8 @@ settings_portal_changed_cb (GDBusProxy  *proxy,
       !g_strcmp0 (name, "high-contrast")) {
     set_high_contrast (self, g_variant_get_boolean (value));
 
+    g_variant_unref (value);
+
     return;
   }
 }
@@ -235,9 +239,8 @@ settings_portal_changed_cb (GDBusProxy  *proxy,
 static void
 init_portal (AdwSettings *self)
 {
-  g_autoptr (GError) error = NULL;
-  g_autoptr (GVariant) color_scheme_variant = NULL;
-  g_autoptr (GVariant) high_contrast_variant = NULL;
+  GError *error = NULL;
+  GVariant *variant;
 
   if (get_disable_portal ())
     return;
@@ -253,27 +256,35 @@ init_portal (AdwSettings *self)
   if (error) {
     g_debug ("Settings portal not found: %s", error->message);
 
+    g_error_free (error);
+
     return;
   }
 
   if (read_portal_setting (self, "org.freedesktop.appearance",
-                           "color-scheme", "u", &color_scheme_variant)) {
+                           "color-scheme", "u", &variant)) {
     self->has_color_scheme = TRUE;
     self->color_scheme_use_fdo_setting = TRUE;
-    self->color_scheme = get_fdo_color_scheme (color_scheme_variant);
+    self->color_scheme = get_fdo_color_scheme (variant);
+
+    g_variant_unref (variant);
   }
 
   if (!self->has_color_scheme &&
       read_portal_setting (self, "org.gnome.desktop.interface",
-                           "color-scheme", "s", &color_scheme_variant)) {
+                           "color-scheme", "s", &variant)) {
     self->has_color_scheme = TRUE;
-    self->color_scheme = get_gnome_color_scheme (color_scheme_variant);
+    self->color_scheme = get_gnome_color_scheme (variant);
+
+    g_variant_unref (variant);
   }
 
   if (read_portal_setting (self, "org.gnome.desktop.interface.a11y",
-                           "high-contrast", "b", &high_contrast_variant)) {
+                           "high-contrast", "b", &variant)) {
     self->has_high_contrast = TRUE;
-    self->high_contrast = g_variant_get_boolean (high_contrast_variant);
+    self->high_contrast = g_variant_get_boolean (variant);
+
+    g_variant_unref (variant);
   }
 
   if (!self->has_color_scheme && !self->has_high_contrast)
@@ -310,8 +321,7 @@ static void
 init_gsettings (AdwSettings *self)
 {
   GSettingsSchemaSource *source;
-  g_autoptr (GSettingsSchema) schema = NULL;
-  g_autoptr (GSettingsSchema) a11y_schema = NULL;
+  GSettingsSchema *schema;
 
 #ifndef G_OS_WIN32
   /* While we can access gsettings in flatpak, we can't do anything useful with
@@ -334,12 +344,14 @@ init_gsettings (AdwSettings *self)
                               "changed::color-scheme",
                               G_CALLBACK (gsettings_color_scheme_changed_cb),
                               self);
+
+    g_settings_schema_unref (schema);
   }
 
-  a11y_schema = g_settings_schema_source_lookup (source, "org.gnome.desktop.a11y.interface", TRUE);
-  if (a11y_schema &&
+  schema = g_settings_schema_source_lookup (source, "org.gnome.desktop.a11y.interface", TRUE);
+  if (schema &&
       !self->has_high_contrast &&
-      g_settings_schema_has_key (a11y_schema, "high-contrast")) {
+      g_settings_schema_has_key (schema, "high-contrast")) {
     self->has_high_contrast = TRUE;
     self->a11y_settings = g_settings_new ("org.gnome.desktop.a11y.interface");
     self->high_contrast = g_settings_get_boolean (self->a11y_settings, "high-contrast");
@@ -348,6 +360,8 @@ init_gsettings (AdwSettings *self)
                               "changed::high-contrast",
                               G_CALLBACK (gsettings_high_contrast_changed_cb),
                               self);
+
+    g_settings_schema_unref (schema);
   }
 }
 
@@ -356,7 +370,7 @@ init_gsettings (AdwSettings *self)
 static gboolean
 is_theme_high_contrast (GdkDisplay *display)
 {
-  g_auto (GValue) value = G_VALUE_INIT;
+  GValue value = G_VALUE_INIT;
   const char *theme_name;
 
   g_value_init (&value, G_TYPE_STRING);
@@ -365,6 +379,8 @@ is_theme_high_contrast (GdkDisplay *display)
 
   theme_name = g_value_get_string (&value);
 
+  g_value_unset (&value);
+
   return !g_strcmp0 (theme_name, "HighContrast") ||
          !g_strcmp0 (theme_name, "HighContrastInverse");
 }
diff --git a/src/adw-style-manager.c b/src/adw-style-manager.c
index bf9dd5b6..05cfc0f4 100644
--- a/src/adw-style-manager.c
+++ b/src/adw-style-manager.c
@@ -509,7 +509,7 @@ void
 adw_style_manager_ensure (void)
 {
   GdkDisplayManager *display_manager = gdk_display_manager_get ();
-  g_autoptr (GSList) displays = NULL;
+  GSList *displays;
   GSList *l;
 
   if (display_style_managers)
@@ -530,6 +530,8 @@ adw_style_manager_ensure (void)
                     "display-opened",
                     G_CALLBACK (register_display),
                     NULL);
+
+  g_slist_free (displays);
 }
 
 /**
diff --git a/src/adw-swipe-tracker.c b/src/adw-swipe-tracker.c
index 7825e881..9c557b92 100644
--- a/src/adw-swipe-tracker.c
+++ b/src/adw-swipe-tracker.c
@@ -169,13 +169,15 @@ get_range (AdwSwipeTracker *self,
            double          *first,
            double          *last)
 {
-  g_autofree double *points = NULL;
+  double *points;
   int n;
 
   points = adw_swipeable_get_snap_points (self->swipeable, &n);
 
   *first = points[0];
   *last = points[n - 1];
+
+  g_free (points);
 }
 
 static void
@@ -355,11 +357,13 @@ gesture_update (AdwSwipeTracker *self,
     return;
 
   if (!self->allow_long_swipes) {
-    g_autofree double *points = NULL;
+    double *points;
     int n;
 
     points = adw_swipeable_get_snap_points (self->swipeable, &n);
     get_bounds (self, points, n, self->initial_progress, &lower, &upper);
+
+    g_free (points);
   } else {
     get_range (self, &lower, &upper);
   }
@@ -378,7 +382,7 @@ get_end_progress (AdwSwipeTracker *self,
                   gboolean         is_touchpad)
 {
   double pos, decel, slope;
-  g_autofree double *points = NULL;
+  double *points;
   int n;
   double lower, upper;
 
@@ -387,8 +391,13 @@ get_end_progress (AdwSwipeTracker *self,
 
   points = adw_swipeable_get_snap_points (self->swipeable, &n);
 
-  if (ABS (velocity) < (is_touchpad ? VELOCITY_THRESHOLD_TOUCHPAD : VELOCITY_THRESHOLD_TOUCH))
-    return points[find_closest_point (points, n, self->progress)];
+  if (ABS (velocity) < (is_touchpad ? VELOCITY_THRESHOLD_TOUCHPAD : VELOCITY_THRESHOLD_TOUCH)) {
+    pos = points[find_closest_point (points, n, self->progress)];
+
+    g_free (points);
+
+    return pos;
+  }
 
   decel = is_touchpad ? DECELERATION_TOUCHPAD : DECELERATION_TOUCH;
   slope = decel / (1.0 - decel) / 1000.0;
@@ -406,16 +415,16 @@ get_end_progress (AdwSwipeTracker *self,
 
   pos = (pos * SIGN (velocity)) + self->progress;
 
-  if (!self->allow_long_swipes) {
-
+  if (!self->allow_long_swipes)
     get_bounds (self, points, n, self->initial_progress, &lower, &upper);
-  } else {
+  else
     get_range (self, &lower, &upper);
-  }
 
   pos = CLAMP (pos, lower, upper);
   pos = points[find_point_for_projection (self, points, n, pos, velocity)];
 
+  g_free (points);
+
   return pos;
 }
 
diff --git a/src/adw-tab-box.c b/src/adw-tab-box.c
index 14a1902a..4afc11fe 100644
--- a/src/adw-tab-box.c
+++ b/src/adw-tab-box.c
@@ -1837,7 +1837,7 @@ adw_tab_box_root_content_write_mime_type_async (GdkContentProvider  *provider,
                                                 gpointer             user_data)
 {
   AdwTabBoxRootContent *self = ADW_TAB_BOX_ROOT_CONTENT (provider);
-  g_autoptr (GTask) task = NULL;
+  GTask *task;
 
   self->tab_box->should_detach_into_new_window = TRUE;
 
@@ -1845,6 +1845,8 @@ adw_tab_box_root_content_write_mime_type_async (GdkContentProvider  *provider,
   g_task_set_priority (task, io_priority);
   g_task_set_source_tag (task, adw_tab_box_root_content_write_mime_type_async);
   g_task_return_boolean (task, TRUE);
+
+  g_object_unref (task);
 }
 
 static gboolean
@@ -2344,7 +2346,7 @@ static void
 begin_drag (AdwTabBox *self,
             GdkDevice *device)
 {
-  g_autoptr (GdkContentProvider) content = NULL;
+  GdkContentProvider *content;
   GtkNative *native;
   GdkSurface *surface;
   GdkDrag *drag;
@@ -2398,6 +2400,7 @@ begin_drag (AdwTabBox *self,
 
   animate_scroll_relative (self, -self->placeholder_scroll_offset, CLOSE_ANIMATION_DURATION);
 
+  g_object_unref (content);
   g_object_unref (detached_tab);
 }
 
diff --git a/src/adw-tab-view.c b/src/adw-tab-view.c
index e0032b2d..b81beeba 100644
--- a/src/adw-tab-view.c
+++ b/src/adw-tab-view.c
@@ -958,7 +958,7 @@ create_and_insert_page (AdwTabView *self,
                         int         position,
                         gboolean    pinned)
 {
-  g_autoptr (AdwTabPage) page =
+  AdwTabPage *page =
     g_object_new (ADW_TYPE_TAB_PAGE,
                   "child", child,
                   "parent", parent,
@@ -968,6 +968,8 @@ create_and_insert_page (AdwTabView *self,
 
   insert_page (self, page, position);
 
+  g_object_unref (page);
+
   return page;
 }
 
@@ -2594,7 +2596,7 @@ AdwTabPage *
 adw_tab_view_get_nth_page (AdwTabView *self,
                            int         position)
 {
-  g_autoptr (AdwTabPage) page = NULL;
+  AdwTabPage *page;
 
   g_return_val_if_fail (ADW_IS_TAB_VIEW (self), NULL);
   g_return_val_if_fail (position >= 0, NULL);
@@ -2602,6 +2604,8 @@ adw_tab_view_get_nth_page (AdwTabView *self,
 
   page = g_list_model_get_item (G_LIST_MODEL (self->children), (guint) position);
 
+  g_object_unref (page);
+
   return page;
 }
 
diff --git a/src/adw-tab.c b/src/adw-tab.c
index 85fbc857..6d8a8ebd 100644
--- a/src/adw-tab.c
+++ b/src/adw-tab.c
@@ -307,7 +307,7 @@ ensure_shader (AdwTab *self)
 {
   GtkNative *native;
   GskRenderer *renderer;
-  g_autoptr (GError) error = NULL;
+  GError *error = NULL;
 
   if (self->shader)
     return;
@@ -325,6 +325,8 @@ ensure_shader (AdwTab *self)
     if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED))
       g_critical ("Couldn't compile shader: %s\n", error->message);
   }
+
+  g_clear_error (&error);
 }
 
 static gboolean
diff --git a/src/adw-toast.c b/src/adw-toast.c
index f72f74d4..b996507a 100644
--- a/src/adw-toast.c
+++ b/src/adw-toast.c
@@ -659,9 +659,9 @@ void
 adw_toast_set_detailed_action_name (AdwToast   *self,
                                     const char *detailed_action_name)
 {
-  g_autofree char *name = NULL;
-  g_autoptr (GVariant) target = NULL;
-  g_autoptr (GError) error = NULL;
+  char *name;
+  GVariant *target;
+  GError *error = NULL;
 
   g_return_if_fail (ADW_IS_TOAST (self));
 
@@ -672,14 +672,16 @@ adw_toast_set_detailed_action_name (AdwToast   *self,
     return;
   }
 
-  if (!g_action_parse_detailed_name (detailed_action_name, &name, &target, &error)) {
+  if (g_action_parse_detailed_name (detailed_action_name, &name, &target, &error)) {
+    adw_toast_set_action_name (self, name);
+    adw_toast_set_action_target_value (self, target);
+  } else {
     g_critical ("Couldn't parse detailed action name: %s", error->message);
-
-    return;
   }
 
-  adw_toast_set_action_name (self, name);
-  adw_toast_set_action_target_value (self, target);
+  g_clear_error (&error);
+  g_clear_pointer (&target, g_variant_unref);
+  g_clear_pointer (&name, g_free);
 }
 
 /**
diff --git a/src/adw-view-switcher.c b/src/adw-view-switcher.c
index 6f514c63..14812d80 100644
--- a/src/adw-view-switcher.c
+++ b/src/adw-view-switcher.c
@@ -103,8 +103,8 @@ update_button (AdwViewSwitcher  *self,
                AdwViewStackPage *page,
                GtkWidget        *button)
 {
-  g_autofree char *title = NULL;
-  g_autofree char *icon_name = NULL;
+  char *title;
+  char *icon_name;
   gboolean needs_attention;
   guint badge_number;
   gboolean visible;
@@ -128,6 +128,9 @@ update_button (AdwViewSwitcher  *self,
                 NULL);
 
   gtk_widget_set_visible (button, visible && (title != NULL || icon_name != NULL));
+
+  g_free (title);
+  g_free (icon_name);
 }
 
 static void
diff --git a/tests/test-button-content.c b/tests/test-button-content.c
index 5d5ba196..13991038 100644
--- a/tests/test-button-content.c
+++ b/tests/test-button-content.c
@@ -20,7 +20,7 @@ static void
 test_adw_button_content_icon_name (void)
 {
   AdwButtonContent *content = g_object_ref_sink (ADW_BUTTON_CONTENT (adw_button_content_new ()));
-  g_autofree char *icon_name = NULL;
+  char *icon_name;
 
   g_assert_nonnull (content);
 
@@ -41,6 +41,7 @@ test_adw_button_content_icon_name (void)
   g_assert_cmpstr (adw_button_content_get_icon_name (content), ==, "");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (icon_name);
   g_assert_finalize_object (content);
 }
 
@@ -48,7 +49,7 @@ static void
 test_adw_button_content_label (void)
 {
   AdwButtonContent *content = g_object_ref_sink (ADW_BUTTON_CONTENT (adw_button_content_new ()));
-  g_autofree char *label = NULL;
+  char *label;
 
   g_assert_nonnull (content);
 
@@ -69,6 +70,7 @@ test_adw_button_content_label (void)
   g_assert_cmpstr (adw_button_content_get_label (content), ==, "");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (label);
   g_assert_finalize_object (content);
 }
 
diff --git a/tests/test-easing.c b/tests/test-easing.c
index 58ba6287..470f13c8 100644
--- a/tests/test-easing.c
+++ b/tests/test-easing.c
@@ -21,7 +21,7 @@ int
 main (int   argc,
       char *argv[])
 {
-  g_autoptr (GEnumClass) enum_class = NULL;
+  GEnumClass *enum_class;
   guint i;
 
   gtk_test_init (&argc, &argv, NULL);
@@ -31,11 +31,14 @@ main (int   argc,
 
   for (i = 0; i < enum_class->n_values; i++) {
     GEnumValue *value = &enum_class->values[i];
-    g_autofree char *path =
-      g_strdup_printf ("/Adwaita/Easing/%s", value->value_nick);
+    char *path = g_strdup_printf ("/Adwaita/Easing/%s", value->value_nick);
 
     g_test_add_data_func (path, GINT_TO_POINTER (value->value), test_easing_ease);
+
+    g_free (path);
   }
 
+  g_type_class_unref (enum_class);
+
   return g_test_run();
 }
diff --git a/tests/test-leaflet.c b/tests/test-leaflet.c
index 39f7aeed..677a17dc 100644
--- a/tests/test-leaflet.c
+++ b/tests/test-leaflet.c
@@ -12,11 +12,11 @@ assert_page_position (GtkSelectionModel *pages,
                       GtkWidget         *widget,
                       int                position)
 {
-  g_autoptr (AdwLeafletPage) page = NULL;
-
-  page = g_list_model_get_item (G_LIST_MODEL (pages), position);
+  AdwLeafletPage *page = g_list_model_get_item (G_LIST_MODEL (pages), position);
 
   g_assert_true (widget == adw_leaflet_page_get_child (page));
+
+  g_object_unref (page);
 }
 
 
diff --git a/tests/test-status-page.c b/tests/test-status-page.c
index 7a497961..3cb514f8 100644
--- a/tests/test-status-page.c
+++ b/tests/test-status-page.c
@@ -46,7 +46,7 @@ static void
 test_adw_status_page_title (void)
 {
   AdwStatusPage *status_page = ADW_STATUS_PAGE (g_object_ref_sink (adw_status_page_new ()));
-  g_autofree char *title = NULL;
+  char *title;
 
   g_assert_nonnull (status_page);
 
@@ -67,6 +67,7 @@ test_adw_status_page_title (void)
   g_assert_cmpstr (adw_status_page_get_title (status_page), ==, "Other Title");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (title);
   g_assert_finalize_object (status_page);
 }
 
@@ -74,7 +75,7 @@ static void
 test_adw_status_page_description (void)
 {
   AdwStatusPage *status_page = ADW_STATUS_PAGE (g_object_ref_sink (adw_status_page_new ()));
-  g_autofree char *description = NULL;
+  char *description;
 
   g_assert_nonnull (status_page);
 
@@ -95,6 +96,7 @@ test_adw_status_page_description (void)
   g_assert_cmpstr (adw_status_page_get_description (status_page), ==, "Other description");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (description);
   g_assert_finalize_object (status_page);
 }
 
diff --git a/tests/test-tab-view.c b/tests/test-tab-view.c
index 04687867..f2c9417d 100644
--- a/tests/test-tab-view.c
+++ b/tests/test-tab-view.c
@@ -160,7 +160,7 @@ test_adw_tab_view_default_icon (void)
   AdwTabView *view = g_object_ref_sink (ADW_TAB_VIEW (adw_tab_view_new ()));
   GIcon *icon1 = g_themed_icon_new ("go-previous-symbolic");
   GIcon *icon2 = g_themed_icon_new ("go-next-symbolic");
-  g_autofree char *icon_str = NULL;
+  char *icon_str;
 
   g_assert_nonnull (view);
 
@@ -179,6 +179,7 @@ test_adw_tab_view_default_icon (void)
   g_assert_true (adw_tab_view_get_default_icon (view) == icon2);
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (icon_str);
   g_assert_finalize_object (view);
   g_assert_finalize_object (icon1);
   g_assert_finalize_object (icon2);
@@ -932,7 +933,7 @@ test_adw_tab_page_title (void)
 {
   AdwTabView *view = g_object_ref_sink (ADW_TAB_VIEW (adw_tab_view_new ()));
   AdwTabPage *page;
-  g_autofree char *title = NULL;
+  char *title;
 
   g_assert_nonnull (view);
 
@@ -954,6 +955,7 @@ test_adw_tab_page_title (void)
   g_assert_cmpstr (adw_tab_page_get_title (page), ==, "Some other title");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (title);
   g_assert_finalize_object (view);
 }
 
@@ -962,7 +964,7 @@ test_adw_tab_page_tooltip (void)
 {
   AdwTabView *view = g_object_ref_sink (ADW_TAB_VIEW (adw_tab_view_new ()));
   AdwTabPage *page;
-  g_autofree char *tooltip = NULL;
+  char *tooltip;
 
   g_assert_nonnull (view);
 
@@ -984,6 +986,7 @@ test_adw_tab_page_tooltip (void)
   g_assert_cmpstr (adw_tab_page_get_tooltip (page), ==, "Some other tooltip");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (tooltip);
   g_assert_finalize_object (view);
 }
 
diff --git a/tests/test-toast.c b/tests/test-toast.c
index ad293e88..26bdc59d 100644
--- a/tests/test-toast.c
+++ b/tests/test-toast.c
@@ -20,7 +20,7 @@ static void
 test_adw_toast_title (void)
 {
   AdwToast *toast = adw_toast_new ("Title");
-  g_autofree char *title = NULL;
+  char *title;
 
   g_assert_nonnull (toast);
 
@@ -38,6 +38,7 @@ test_adw_toast_title (void)
   g_assert_cmpstr (adw_toast_get_title (toast), ==, "Title");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (title);
   g_assert_finalize_object (toast);
 }
 
@@ -95,10 +96,7 @@ static void
 test_adw_toast_action_target (void)
 {
   AdwToast *toast = adw_toast_new ("Title");
-  GVariant *action_target;
-  g_autoptr (GVariant) variant1 = g_variant_ref_sink (g_variant_new_int32 (1));
-  g_autoptr (GVariant) variant2 = g_variant_ref_sink (g_variant_new_int32 (2));
-  g_autoptr (GVariant) variant3 = g_variant_ref_sink (g_variant_new_int32 (3));
+  GVariant *action_target, *variant;
 
   g_assert_nonnull (toast);
 
@@ -108,17 +106,23 @@ test_adw_toast_action_target (void)
   g_object_get (toast, "action-target", &action_target, NULL);
   g_assert_null (action_target);
 
+  variant = g_variant_ref_sink (g_variant_new_int32 (1));
   adw_toast_set_action_target_value (toast, g_variant_new_int32 (1));
-  g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant1);
+  g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant);
   g_assert_cmpint (notified, ==, 1);
+  g_variant_unref (variant);
 
+  variant = g_variant_ref_sink (g_variant_new_int32 (2));
   g_object_set (toast, "action-target", g_variant_new_int32 (2), NULL);
-  g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant2);
+  g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant);
   g_assert_cmpint (notified, ==, 2);
+  g_variant_unref (variant);
 
+  variant = g_variant_ref_sink (g_variant_new_int32 (3));
   adw_toast_set_action_target (toast, "i", 3);
-  g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant3);
+  g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant);
   g_assert_cmpint (notified, ==, 3);
+  g_variant_unref (variant);
 
   g_assert_finalize_object (toast);
 }
@@ -127,7 +131,7 @@ static void
 test_adw_toast_detailed_action_name (void)
 {
   AdwToast *toast = adw_toast_new ("Title");
-  g_autoptr (GVariant) variant = g_variant_ref_sink (g_variant_new_int32 (2));
+  GVariant *variant = g_variant_ref_sink (g_variant_new_int32 (2));
 
   g_assert_nonnull (toast);
 
@@ -142,6 +146,7 @@ test_adw_toast_detailed_action_name (void)
   g_assert_cmpstr (adw_toast_get_action_name (toast), ==, "win.something");
   g_assert_cmpvariant (adw_toast_get_action_target_value (toast), variant);
 
+  g_variant_unref (variant);
   g_assert_finalize_object (toast);
 }
 
diff --git a/tests/test-window-title.c b/tests/test-window-title.c
index 0a5616fc..ec6c871e 100644
--- a/tests/test-window-title.c
+++ b/tests/test-window-title.c
@@ -20,7 +20,7 @@ static void
 test_adw_window_title_title (void)
 {
   AdwWindowTitle *window_title = g_object_ref_sink (ADW_WINDOW_TITLE (adw_window_title_new ("Some title", 
NULL)));
-  g_autofree char *title = NULL;
+  char *title;
 
   g_assert_nonnull (window_title);
 
@@ -41,6 +41,7 @@ test_adw_window_title_title (void)
   g_assert_cmpstr (adw_window_title_get_title (window_title), ==, "Yet another title");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (title);
   g_assert_finalize_object (window_title);
 }
 
@@ -48,7 +49,7 @@ static void
 test_adw_window_title_subtitle (void)
 {
   AdwWindowTitle *window_title = g_object_ref_sink (ADW_WINDOW_TITLE (adw_window_title_new (NULL, "Some 
subtitle")));
-  g_autofree char *subtitle = NULL;
+  char *subtitle;
 
   g_assert_nonnull (window_title);
 
@@ -69,6 +70,7 @@ test_adw_window_title_subtitle (void)
   g_assert_cmpstr (adw_window_title_get_subtitle (window_title), ==, "Yet another subtitle");
   g_assert_cmpint (notified, ==, 2);
 
+  g_free (subtitle);
   g_assert_finalize_object (window_title);
 }
 


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