Skip to content

Commit b77d6bd

Browse files
Detect division by zero.
See esp8266/Arduino#2397 for details.
1 parent 1168f8d commit b77d6bd

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

Sming/Wiring/WMath.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,12 @@ long random(long howsmall, long howbig)
7979
}
8080

8181

82-
long map(long x, long in_min, long in_max, long out_min, long out_max)
83-
{
84-
return (x - in_min) * (out_max - out_min + 1) / (in_max - in_min + 1) + out_min;
82+
long map(long x, long in_min, long in_max, long out_min, long out_max) {
83+
long divisor = (in_max - in_min) + out_min;
84+
if(divisor == 0){
85+
return -1; //AVR returns -1, SAM returns 0
86+
}
87+
return (x - in_min) * (out_max - out_min) / divisor;
8588
}
8689

8790

0 commit comments

Comments
 (0)