[gnome-power-manager] Add the enumerated actions in a 64bit safe way. Fixes #590991
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-power-manager] Add the enumerated actions in a 64bit safe way. Fixes #590991
- Date: Tue, 11 Aug 2009 16:39:25 +0000 (UTC)
commit 8ae9438e8bfbcf2aca3ae787185b2200eb4f59d2
Author: Richard Hughes <richard hughsie com>
Date: Tue Aug 11 17:38:25 2009 +0100
Add the enumerated actions in a 64bit safe way. Fixes #590991
src/gpm-prefs-core.c | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
---
diff --git a/src/gpm-prefs-core.c b/src/gpm-prefs-core.c
index 6d5ef0e..20bd98e 100644
--- a/src/gpm-prefs-core.c
+++ b/src/gpm-prefs-core.c
@@ -331,7 +331,6 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
{
gchar *value_txt;
gint i;
- gint n_added = 0;
gboolean is_writable;
GtkWidget *widget;
GpmActionPolicy policy;
@@ -360,7 +359,6 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
} else if (policy == GPM_ACTION_POLICY_SHUTDOWN && prefs->priv->can_shutdown) {
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Shutdown"));
g_ptr_array_add (array, GINT_TO_POINTER (policy));
- n_added++;
} else if (policy == GPM_ACTION_POLICY_SUSPEND && !prefs->priv->can_suspend) {
egg_debug ("Cannot add option, as cannot suspend.");
} else if (policy == GPM_ACTION_POLICY_HIBERNATE && !prefs->priv->can_hibernate) {
@@ -368,25 +366,20 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
} else if (policy == GPM_ACTION_POLICY_SUSPEND && prefs->priv->can_suspend) {
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Suspend"));
g_ptr_array_add (array, GINT_TO_POINTER (policy));
- n_added++;
} else if (policy == GPM_ACTION_POLICY_HIBERNATE && prefs->priv->can_hibernate) {
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Hibernate"));
g_ptr_array_add (array, GINT_TO_POINTER (policy));
- n_added++;
} else if (policy == GPM_ACTION_POLICY_BLANK) {
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Blank screen"));
g_ptr_array_add (array, GINT_TO_POINTER (policy));
- n_added++;
} else if (policy == GPM_ACTION_POLICY_INTERACTIVE) {
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Ask me"));
g_ptr_array_add (array, GINT_TO_POINTER (policy));
- n_added++;
} else if (policy == GPM_ACTION_POLICY_NOTHING) {
/* we only add do nothing in the GUI if the user has explicitly specified this in GConf */
if (value == GPM_ACTION_POLICY_NOTHING) {
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), _("Do nothing"));
g_ptr_array_add (array, GINT_TO_POINTER (policy));
- n_added++;
}
} else {
egg_warning ("Unknown action read from conf: %i", policy);
@@ -394,8 +387,11 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
}
/* save as array _only_ the actions we could add */
- actions_added = (GpmActionPolicy *) g_ptr_array_free (array, FALSE);
- actions_added[n_added] = -1;
+ actions_added = g_new0 (GpmActionPolicy, array->len+1);
+ for (i=0; i<array->len; i++)
+ actions_added[i] = GPOINTER_TO_INT (g_ptr_array_index (array, i));
+ actions_added[i] = -1;
+
g_object_set_data_full (G_OBJECT (widget), "actions", (gpointer) actions_added, (GDestroyNotify) gpm_prefs_actions_destroy_cb);
/* set what we have in GConf */
@@ -406,6 +402,7 @@ gpm_prefs_setup_action_combo (GpmPrefs *prefs, const gchar *widget_name,
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), i);
}
+ g_ptr_array_free (array, TRUE);
g_free (value_txt);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]