[gnome-settings-daemon] power: Make ABS_TO_PERCENTAGE warn on invalid input



commit 5be38144f19d1479c908039ffc2991052b06111b
Author: Bastien Nocera <hadess hadess net>
Date:   Wed Sep 7 16:18:46 2011 +0100

    power: Make ABS_TO_PERCENTAGE warn on invalid input
    
    Works around this problem, whilst producing a warning.
    https://bugzilla.gnome.org/show_bug.cgi?id=657364

 plugins/power/gsd-power-manager.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index a67c998..80aba9d 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -126,7 +126,13 @@ static const gchar introspection_xml[] =
 #define BRIGHTNESS_STEP_AMOUNT(max) ((max) < 20 ? 1 : (max) / 20)
 
 /* take a discrete value with offset and convert to percentage */
-#define ABS_TO_PERCENTAGE(min, max, value) (((value - min) * 100) / (max - min))
+static int
+abs_to_percentage (int min, int max, int value)
+{
+	g_return_val_if_fail (max > min, -1);
+	return (((value - min) * 100) / (max - min));
+}
+#define ABS_TO_PERCENTAGE(min, max, value) abs_to_percentage(min, max, value)
 #define PERCENTAGE_TO_ABS(min, max, value) (min + (((max - min) * value) / 100))
 
 #define GSD_POWER_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_POWER_MANAGER, GsdPowerManagerPrivate))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]