diff options
author | Debarshi Ray <debarshir@gnome.org> | 2018-08-17 14:36:18 +0200 |
---|---|---|
committer | Debarshi Ray <debarshir@gnome.org> | 2018-08-17 15:08:59 +0200 |
commit | 91fc0707d0d02dec6cb6601a409744980951b4b7 (patch) | |
tree | b029d31af7a2f9858f8fba51ab217f81aac50fff | |
parent | faaeef562e599e4b10111a5a946d85a5ca076191 (diff) | |
download | libgd-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.c | 31 | ||||
-rw-r--r-- | libgd/gd-styled-text-renderer.h | 2 |
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 |