Chromium Code Reviews| 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; |