summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@gnome.org>2018-08-17 14:36:18 +0200
committerDebarshi Ray <debarshir@gnome.org>2018-08-17 15:08:59 +0200
commit91fc0707d0d02dec6cb6601a409744980951b4b7 (patch)
treeb029d31af7a2f9858f8fba51ab217f81aac50fff
parentfaaeef562e599e4b10111a5a946d85a5ca076191 (diff)
downloadlibgd-91fc0707d0d02dec6cb6601a409744980951b4b7.tar.gz
styled-text-renderer: Drop the priv pointer
The current GObject recommendation is to use the generated get_instance_private function instead of a separate priv pointer in the instance struct. The saves one pointer per class in the heirarchy multiplied by the number of instances of the type, and the function is fast enough because it only does pointer arithmetic. https://bugzilla.gnome.org/show_bug.cgi?id=774709
-rw-r--r--libgd/gd-styled-text-renderer.c31
-rw-r--r--libgd/gd-styled-text-renderer.h2
2 files changed, 21 insertions, 12 deletions
diff --git a/libgd/gd-styled-text-renderer.c b/libgd/gd-styled-text-renderer.c
index dcf06ed..5d1d75f 100644
--- a/libgd/gd-styled-text-renderer.c
+++ b/libgd/gd-styled-text-renderer.c
@@ -36,14 +36,17 @@ gd_styled_text_renderer_render (GtkCellRenderer *cell,
GtkCellRendererState flags)
{
GdStyledTextRenderer *self = GD_STYLED_TEXT_RENDERER (cell);
+ GdStyledTextRendererPrivate *priv;
GtkStyleContext *context;
const gchar *style_class;
GList *l;
+ priv = gd_styled_text_renderer_get_instance_private (self);
+
context = gtk_widget_get_style_context (widget);
gtk_style_context_save (context);
- for (l = self->priv->style_classes; l != NULL; l = l->next)
+ for (l = priv->style_classes; l != NULL; l = l->next)
{
style_class = l->data;
gtk_style_context_add_class (context, style_class);
@@ -60,11 +63,14 @@ static void
gd_styled_text_renderer_finalize (GObject *obj)
{
GdStyledTextRenderer *self = GD_STYLED_TEXT_RENDERER (obj);
+ GdStyledTextRendererPrivate *priv;
+
+ priv = gd_styled_text_renderer_get_instance_private (self);
- if (self->priv->style_classes != NULL)
+ if (priv->style_classes != NULL)
{
- g_list_free_full (self->priv->style_classes, g_free);
- self->priv->style_classes = NULL;
+ g_list_free_full (priv->style_classes, g_free);
+ priv->style_classes = NULL;
}
G_OBJECT_CLASS (gd_styled_text_renderer_parent_class)->finalize (obj);
@@ -83,7 +89,6 @@ gd_styled_text_renderer_class_init (GdStyledTextRendererClass *klass)
static void
gd_styled_text_renderer_init (GdStyledTextRenderer *self)
{
- self->priv = gd_styled_text_renderer_get_instance_private (self);
}
GtkCellRenderer *
@@ -97,25 +102,31 @@ void
gd_styled_text_renderer_add_class (GdStyledTextRenderer *self,
const gchar *class)
{
- if (g_list_find_custom (self->priv->style_classes, class, (GCompareFunc) g_strcmp0))
+ GdStyledTextRendererPrivate *priv;
+
+ priv = gd_styled_text_renderer_get_instance_private (self);
+
+ if (g_list_find_custom (priv->style_classes, class, (GCompareFunc) g_strcmp0))
return;
- self->priv->style_classes = g_list_append (self->priv->style_classes, g_strdup (class));
+ priv->style_classes = g_list_append (priv->style_classes, g_strdup (class));
}
void
gd_styled_text_renderer_remove_class (GdStyledTextRenderer *self,
const gchar *class)
{
+ GdStyledTextRendererPrivate *priv;
GList *class_element;
- class_element = g_list_find_custom (self->priv->style_classes, class, (GCompareFunc) g_strcmp0);
+ priv = gd_styled_text_renderer_get_instance_private (self);
+
+ class_element = g_list_find_custom (priv->style_classes, class, (GCompareFunc) g_strcmp0);
if (class_element == NULL)
return;
- self->priv->style_classes = g_list_remove_link (self->priv->style_classes,
- class_element);
+ priv->style_classes = g_list_remove_link (priv->style_classes, class_element);
g_free (class_element->data);
g_list_free_1 (class_element);
}
diff --git a/libgd/gd-styled-text-renderer.h b/libgd/gd-styled-text-renderer.h
index fc1995b..f5a1839 100644
--- a/libgd/gd-styled-text-renderer.h
+++ b/libgd/gd-styled-text-renderer.h
@@ -57,8 +57,6 @@ typedef struct _GdStyledTextRendererPrivate GdStyledTextRendererPrivate;
struct _GdStyledTextRenderer
{
GtkCellRendererText parent;
-
- GdStyledTextRendererPrivate *priv;
};
struct _GdStyledTextRendererClass