When slider values are not initialized or are set to zero,
this can result in division by 0.0 that can give unpredictable
values. Add some checks before division.
Change-Id: Ib269c962519191fcc3699076542ca021228cd1ef
int max_val = (int)((rm->upper + add_for_rounding) * mul_for_rounding);
int min_val = (int)((rm->lower + add_for_rounding) * mul_for_rounding);
- int percent = ((val - min_val) / (double)(abs(max_val - min_val))) * 100;
+ int percent;
+ if (min_val >= max_val)
+ percent = 0;
+ else if (val <= min_val)
+ percent = 0;
+ else if (val >= max_val)
+ percent = 100;
+ else
+ percent = ((val - min_val) / (double)(abs(max_val - min_val))) * 100;
+
char buf_percent[64] = "\0";
g_snprintf(buf_percent, sizeof(buf_percent), "%d", percent);