Index: core/src/fxcrt/fx_basic_gcc.cpp |
diff --git a/core/src/fxcrt/fx_basic_gcc.cpp b/core/src/fxcrt/fx_basic_gcc.cpp |
index 7f5bbade66c38d188171c9b9b701e2dbc969eb98..0390132d31763a2dafde902be93e0a2ac18e46da 100644 |
--- a/core/src/fxcrt/fx_basic_gcc.cpp |
+++ b/core/src/fxcrt/fx_basic_gcc.cpp |
@@ -17,11 +17,16 @@ T FXSYS_StrToInt(STR_T str) |
str ++; |
} |
T num = 0; |
+ T num_new = 0; |
while (*str) { |
if ((*str) < '0' || (*str) > '9') { |
break; |
} |
- num = num * 10 + (*str) - '0'; |
+ num_new = num * 10 + (*str) - '0'; |
+ if (num_new < 0) { |
+ break; |
Bo Xu
2014/09/19 21:48:19
Now check when the string is too long and overflow
Tom Sepez
2014/09/19 22:15:38
This can't work, either T is a signed type in whic
Bo Xu
2014/09/19 22:28:15
Done.
|
+ } |
+ num = num_new; |
str ++; |
} |
return neg ? -num : num; |