[libpanel/wip/chergert/fix-14] layout: remove g_autoptr() usage
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libpanel/wip/chergert/fix-14] layout: remove g_autoptr() usage
- Date: Tue, 13 Sep 2022 13:11:54 +0000 (UTC)
commit 88cfc24301fc3eb5a3fb7d71f9dd66bfb8580034
Author: Christian Hergert <chergert redhat com>
Date: Tue Sep 13 06:08:04 2022 -0700
layout: remove g_autoptr() usage
src/panel-layout-item.c | 26 ++++++++++++++++++--------
src/panel-layout.c | 34 +++++++++++++++++++++-------------
2 files changed, 39 insertions(+), 21 deletions(-)
---
diff --git a/src/panel-layout-item.c b/src/panel-layout-item.c
index db052e7..6c9e0f6 100644
--- a/src/panel-layout-item.c
+++ b/src/panel-layout-item.c
@@ -303,7 +303,8 @@ panel_layout_item_has_metadata (PanelLayoutItem *self,
const char *key,
const GVariantType **value_type)
{
- g_autoptr(GVariant) value = NULL;
+ GVariant *value;
+ gboolean ret = FALSE;
g_return_val_if_fail (PANEL_IS_LAYOUT_ITEM (self), FALSE);
g_return_val_if_fail (key != NULL, FALSE);
@@ -315,10 +316,12 @@ panel_layout_item_has_metadata (PanelLayoutItem *self,
if (value_type != NULL)
*value_type = g_variant_get_type (value);
- return TRUE;
+ ret = TRUE;
+
+ g_variant_unref (value);
}
- return FALSE;
+ return ret;
}
/**
@@ -367,7 +370,7 @@ panel_layout_item_get_metadata (PanelLayoutItem *self,
const char *format,
...)
{
- g_autoptr(GVariant) value = NULL;
+ GVariant *value;
va_list args;
g_return_if_fail (PANEL_IS_LAYOUT_ITEM (self));
@@ -383,6 +386,8 @@ panel_layout_item_get_metadata (PanelLayoutItem *self,
va_start (args, format);
g_variant_get_va (value, format, NULL, &args);
va_end (args);
+
+ g_variant_unref (value);
}
/**
@@ -512,8 +517,8 @@ PanelLayoutItem *
_panel_layout_item_new_from_variant (GVariant *variant,
GError **error)
{
- g_autoptr(GVariant) positionv = NULL;
- g_autoptr(GVariant) metadatav = NULL;
+ GVariant *positionv = NULL;
+ GVariant *metadatav = NULL;
PanelLayoutItem *self;
g_return_val_if_fail (variant != NULL, NULL);
@@ -526,8 +531,9 @@ _panel_layout_item_new_from_variant (GVariant *variant,
if ((positionv = g_variant_lookup_value (variant, "position", NULL)))
{
- g_autoptr(GVariant) child = g_variant_get_variant (positionv);
+ GVariant *child = g_variant_get_variant (positionv);
self->position = _panel_position_new_from_variant (child);
+ g_clear_pointer (&child, g_variant_unref);
}
if ((metadatav = g_variant_lookup_value (variant, "metadata", G_VARIANT_TYPE_VARDICT)))
@@ -540,10 +546,14 @@ _panel_layout_item_new_from_variant (GVariant *variant,
while (g_variant_iter_loop (&iter, "{sv}", &key, &value))
{
- g_autoptr(GVariant) unwrapped = g_variant_get_variant (value);
+ GVariant *unwrapped = g_variant_get_variant (value);
panel_layout_item_set_metadata_value (self, key, unwrapped);
+ g_clear_pointer (&unwrapped, g_variant_unref);
}
}
+ g_clear_pointer (&positionv, g_variant_unref);
+ g_clear_pointer (&metadatav, g_variant_unref);
+
return self;
}
diff --git a/src/panel-layout.c b/src/panel-layout.c
index 3c19f3a..16cdaac 100644
--- a/src/panel-layout.c
+++ b/src/panel-layout.c
@@ -97,7 +97,8 @@ panel_layout_load_1 (PanelLayout *self,
GVariant *variant,
GError **error)
{
- g_autoptr(GVariant) items = NULL;
+ GVariant *items = NULL;
+ gboolean ret = FALSE;
g_assert (PANEL_IS_LAYOUT (self));
g_assert (variant != NULL);
@@ -109,26 +110,33 @@ panel_layout_load_1 (PanelLayout *self,
for (gsize i = 0; i < n_children; i++)
{
- g_autoptr(GVariant) itemv = g_variant_get_child_value (items, i);
- g_autoptr(GVariant) infov = g_variant_get_variant (itemv);
+ GVariant *itemv = g_variant_get_child_value (items, i);
+ GVariant *infov = g_variant_get_variant (itemv);
PanelLayoutItem *item = _panel_layout_item_new_from_variant (infov, error);
+ g_clear_pointer (&infov, g_variant_unref);
+ g_clear_pointer (&itemv, g_variant_unref);
+
if (item == NULL)
- return FALSE;
+ goto cleanup;
g_ptr_array_add (self->items, g_steal_pointer (&item));
}
- return TRUE;
- }
- else
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_DATA,
- "items missing from variant");
- return FALSE;
+ ret = TRUE;
+
+ goto cleanup;
}
+
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_DATA,
+ "items missing from variant");
+
+cleanup:
+ g_clear_pointer (&items, g_variant_unref);
+
+ return ret;
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]