diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-11-11 12:24:35 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-11-11 12:24:35 -0500 |
commit | 82b855cc4b4127bd5f1f8b41a8808433375c0bd7 (patch) | |
tree | aa90227a1a815803c5e142f65248b7be5e968d4f | |
parent | 0db504edde63eb77e801a5b8f4e70008e77d64dd (diff) | |
download | gtk+-82b855cc4b4127bd5f1f8b41a8808433375c0bd7.tar.gz |
label: Avoid a needless strdup
Don't duplicate the string before we know if it
has actually changed.
-rw-r--r-- | gtk/gtklabel.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 26c6419460..3d82096bfb 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -450,7 +450,7 @@ static gboolean gtk_label_query_tooltip (GtkWidget *widget, static void gtk_label_set_text_internal (GtkLabel *self, char *str); static gboolean gtk_label_set_label_internal (GtkLabel *self, - char *str); + const char *str); static gboolean gtk_label_set_use_markup_internal (GtkLabel *self, gboolean val); static gboolean gtk_label_set_use_underline_internal (GtkLabel *self, @@ -1703,17 +1703,14 @@ gtk_label_set_text_internal (GtkLabel *self, } static gboolean -gtk_label_set_label_internal (GtkLabel *self, - char *str) +gtk_label_set_label_internal (GtkLabel *self, + const char *str) { if (g_strcmp0 (str, self->label) == 0) - { - g_free (str); - return FALSE; - } + return FALSE; g_free (self->label); - self->label = str; + self->label = g_strdup (str ? str : ""); g_object_notify_by_pspec (G_OBJECT (self), label_props[PROP_LABEL]); @@ -1809,7 +1806,7 @@ gtk_label_set_text (GtkLabel *self, g_object_freeze_notify (G_OBJECT (self)); - if (gtk_label_set_label_internal (self, g_strdup (str ? str : "")) || + if (gtk_label_set_label_internal (self, str) || gtk_label_set_use_markup_internal (self, FALSE) || gtk_label_set_use_underline_internal (self, FALSE)) gtk_label_recalculate (self); @@ -1894,7 +1891,7 @@ gtk_label_set_label (GtkLabel *self, g_object_freeze_notify (G_OBJECT (self)); - if (gtk_label_set_label_internal (self, g_strdup (str ? str : ""))) + if (gtk_label_set_label_internal (self, str)) gtk_label_recalculate (self); g_object_thaw_notify (G_OBJECT (self)); @@ -2419,7 +2416,7 @@ gtk_label_set_markup (GtkLabel *self, g_object_freeze_notify (G_OBJECT (self)); - if (gtk_label_set_label_internal (self, g_strdup (str ? str : "")) || + if (gtk_label_set_label_internal (self, str) || gtk_label_set_use_markup_internal (self, TRUE) || gtk_label_set_use_underline_internal (self, FALSE)) gtk_label_recalculate (self); @@ -2450,7 +2447,7 @@ gtk_label_set_markup_with_mnemonic (GtkLabel *self, g_object_freeze_notify (G_OBJECT (self)); - if (gtk_label_set_label_internal (self, g_strdup (str ? str : "")) || + if (gtk_label_set_label_internal (self, str) || gtk_label_set_use_markup_internal (self, TRUE) || gtk_label_set_use_underline_internal (self, TRUE)) gtk_label_recalculate (self); @@ -3572,7 +3569,7 @@ gtk_label_set_text_with_mnemonic (GtkLabel *self, g_object_freeze_notify (G_OBJECT (self)); - if (gtk_label_set_label_internal (self, g_strdup (str)) || + if (gtk_label_set_label_internal (self, str) || gtk_label_set_use_markup_internal (self, FALSE) || gtk_label_set_use_underline_internal (self, TRUE)) gtk_label_recalculate (self); |