From 2c6abb9a985e6ac4dae14510ad33e38bc38c262b Mon Sep 17 00:00:00 2001 From: Amar Takhar Date: Thu, 10 Feb 2011 01:36:25 +0000 Subject: [PATCH] Instead of throwing return 0 for invalid values. This happens anyway if the input is invalid so it makes the most sense to return 0 for invalid ranges. Originally committed to SVN as r5343. --- aegisub/libaegisub/common/util.cpp | 7 ++----- aegisub/tests/libaegisub_util.cpp | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/aegisub/libaegisub/common/util.cpp b/aegisub/libaegisub/common/util.cpp index f925e309c..f07fcd959 100644 --- a/aegisub/libaegisub/common/util.cpp +++ b/aegisub/libaegisub/common/util.cpp @@ -44,11 +44,8 @@ void str_lower(std::string &str) { int strtoi(std::string &str) { long l = strtol(str.c_str(), NULL, 10); - if (errno == ERANGE) - throw("Cannot convert to long (invalid range)"); - - if ((l < INT_MIN) || (l > INT_MAX)) - throw("Cannot convert to int (invalid range)"); + if ((errno == ERANGE) || (l < INT_MIN) || (l > INT_MAX)) + return 0; return (int)l; } diff --git a/aegisub/tests/libaegisub_util.cpp b/aegisub/tests/libaegisub_util.cpp index 49e5feb7e..0d7ab18c6 100644 --- a/aegisub/tests/libaegisub_util.cpp +++ b/aegisub/tests/libaegisub_util.cpp @@ -73,10 +73,10 @@ TEST_F(lagi_util, Utilstr_lower) { TEST_F(lagi_util, UtilstrtoiInvalidRange) { std::string str("2147483650"); - EXPECT_ANY_THROW(util::strtoi(str)); + EXPECT_EQ(util::strtoi(str), 0); str.assign("-2147483650"); - EXPECT_ANY_THROW(util::strtoi(str)); + EXPECT_EQ(util::strtoi(str), 0); } TEST_F(lagi_util, UtilstrtoiInvalidString) {