diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-05-16 02:08:38 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-05-16 02:08:38 +0800 |
commit | 7e18677c220c8c1b81d5240c5658553ee1d2ae79 (patch) | |
tree | 613ed37ad1e9dbfab6f68d92fc667ae2dd595b7a /lib | |
parent | 7933945474d076b7f0b4819e0a737c0ffe6c8d45 (diff) | |
download | gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.tar gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.tar.gz gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.tar.bz2 gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.tar.lz gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.tar.xz gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.tar.zst gsoc2013-epiphany-7e18677c220c8c1b81d5240c5658553ee1d2ae79.zip |
Fix mem leak.
2004-05-15 Christian Persch <chpe@cvs.gnome.org>
* lib/ephy-dialog.c: (set_value_from_editable),
(set_value_from_radiobuttongroup), (set_value_from_spin_button),
(set_value_from_togglebutton), (set_combo_box_from_value):
Fix mem leak.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ephy-dialog.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/ephy-dialog.c b/lib/ephy-dialog.c index 05e6c94c1..9d0ee28af 100644 --- a/lib/ephy-dialog.c +++ b/lib/ephy-dialog.c @@ -254,6 +254,7 @@ set_value_from_editable (PropertyInfo *info, GValue *value) break; default: retval = FALSE; + g_value_unset (value); g_warning ("Unsupported value type for editable %s", info->id); break; } @@ -346,16 +347,17 @@ set_value_from_radiobuttongroup (PropertyInfo *info, GValue *value) index = get_radio_button_active_index (info->widget); g_return_val_if_fail (index >= 0, FALSE); - g_value_init (value, info->data_type); if (info->data_type == G_TYPE_STRING) { g_return_val_if_fail (info->string_enum != NULL, FALSE); g_return_val_if_fail (g_list_nth_data (info->string_enum, index) != NULL, FALSE); + g_value_init (value, G_TYPE_STRING); g_value_set_string (value, (char*) g_list_nth_data (info->string_enum, index)); } else if (info->data_type == G_TYPE_INT) { + g_value_init (value, G_TYPE_INT); g_value_set_int (value, index); } else @@ -380,13 +382,14 @@ set_value_from_spin_button (PropertyInfo *info, GValue *value) is_int = (gtk_spin_button_get_digits (GTK_SPIN_BUTTON(info->widget)) == 0); - g_value_init (value, info->data_type); if (info->data_type == G_TYPE_INT && is_int) { + g_value_init (value, G_TYPE_INT); g_value_set_int (value, (int) f); } else if (info->data_type == G_TYPE_FLOAT) { + g_value_init (value, G_TYPE_FLOAT); g_value_set_float (value, f); } else @@ -408,9 +411,9 @@ set_value_from_togglebutton (PropertyInfo *info, GValue *value) active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (info->widget)); - g_value_init (value, info->data_type); if (info->data_type == G_TYPE_BOOLEAN) { + g_value_init (value, info->data_type); g_value_set_boolean (value, active); } else @@ -585,6 +588,7 @@ set_combo_box_from_value (PropertyInfo *info, const GValue *value) else { char *v; + gtk_combo_box_set_active (GTK_COMBO_BOX (info->widget), -1); v = g_strdup_value_contents (value); |