From ed92dbbd8f3537326e10ed8c2585df6302fed853 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 27 Mar 2014 21:30:34 +1300 Subject: FPE fixes --- src/tray.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'src/tray.c') diff --git a/src/tray.c b/src/tray.c index d3672f1..0ba95a2 100644 --- a/src/tray.c +++ b/src/tray.c @@ -258,22 +258,25 @@ void tray_set_tooltip(const gchar* msg) void tray_update_icon_percent() { gulong max_frequency = gf_freqi(0, 0); - - /* The percentange should only be 25, 50, 75, or 100, so we need to - round to one of these numbers. */ - gint percent = (gf_current(0) * 100)/max_frequency; gint adjusted_percent = 0; - - if(percent == 100) { - adjusted_percent = 100; - } else if(percent >= 65.5) { - adjusted_percent = 75; - } else if(percent >= 37.5) { - adjusted_percent = 50; - } else if(percent >= 12.5) { - adjusted_percent = 25; - } else { + // If no governor, set percentage to 0. This if statement fixes an FPE a few lines down + if (max_frequency == 0) + { adjusted_percent = 0; + } else { + // Percentages need to be {25,50,75,100}. Round to one of these numbers. + gint percent = (gf_current(0) * 100)/max_frequency; + if(percent == 100) { + adjusted_percent = 100; + } else if(percent >= 65.5) { + adjusted_percent = 75; + } else if(percent >= 37.5) { + adjusted_percent = 50; + } else if(percent >= 12.5) { + adjusted_percent = 25; + } else { + adjusted_percent = 0; + } } /* convert the int to a string */ @@ -284,7 +287,6 @@ void tray_update_icon_percent() gtk_status_icon_set_from_file(tray, file); g_free(file); - } void tray_show() -- cgit v1.1