diff options
author | Christian Persch <chpe@gnome.org> | 2007-07-10 22:18:08 +0000 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2007-07-10 22:18:08 +0000 |
commit | bd48f263ceb208d8bc2a7582a713aa4014791d61 (patch) | |
tree | 55688893c07a4b04055602b59798006bc0da6130 /gtk/gtkaction.c | |
parent | 2048ec5925a4f94b8485ac0db1582e200e3799a9 (diff) | |
download | gtk+-bd48f263ceb208d8bc2a7582a713aa4014791d61.tar.gz |
Intern the action's name. Saves two string duplicates of it per action;
2007-07-11 Christian Persch <chpe@gnome.org>
* gtk/gtkaction.c: (gtk_action_buildable_set_name),
(gtk_action_finalize), (gtk_action_set_property),
(gtk_action_get_property):
* gtk/gtkactiongroup.c: (gtk_action_group_init),
(gtk_action_group_add_action),
(gtk_action_group_add_action_with_accel),
(gtk_action_group_remove_action): Intern the action's name. Saves two
string duplicates of it per action; bug #455645.
svn path=/trunk/; revision=18441
Diffstat (limited to 'gtk/gtkaction.c')
-rw-r--r-- | gtk/gtkaction.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c index 49d40c36a5..c4ef50dcb9 100644 --- a/gtk/gtkaction.c +++ b/gtk/gtkaction.c @@ -54,7 +54,7 @@ struct _GtkActionPrivate { - gchar *name; + const gchar *name; /* interned */ gchar *label; gchar *short_label; gchar *tooltip; @@ -398,12 +398,9 @@ static void gtk_action_buildable_set_name (GtkBuildable *buildable, const gchar *name) { - gchar *tmp; GtkAction *action = GTK_ACTION (buildable); - tmp = action->private_data->name; - action->private_data->name = g_strdup (name); - g_free (tmp); + action->private_data->name = g_intern_string (name); } static const gchar * @@ -455,7 +452,6 @@ gtk_action_finalize (GObject *object) GtkAction *action; action = GTK_ACTION (object); - g_free (action->private_data->name); g_free (action->private_data->label); g_free (action->private_data->short_label); g_free (action->private_data->tooltip); @@ -476,16 +472,13 @@ gtk_action_set_property (GObject *object, GParamSpec *pspec) { GtkAction *action; - gchar *tmp; action = GTK_ACTION (object); switch (prop_id) { case PROP_NAME: - tmp = action->private_data->name; - action->private_data->name = g_value_dup_string (value); - g_free (tmp); + action->private_data->name = g_intern_string (g_value_get_string (value)); break; case PROP_LABEL: gtk_action_set_label (action, g_value_get_string (value)); @@ -545,7 +538,7 @@ gtk_action_get_property (GObject *object, switch (prop_id) { case PROP_NAME: - g_value_set_string (value, action->private_data->name); + g_value_set_static_string (value, action->private_data->name); break; case PROP_LABEL: g_value_set_string (value, action->private_data->label); |