Use atof() in mystof(), because istringstream>>float randomly causes a segfault on...
authorPerttu Ahola <celeron55@gmail.com>
Wed, 21 Mar 2012 00:16:22 +0000 (02:16 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Wed, 21 Mar 2012 00:16:22 +0000 (02:16 +0200)
src/utility.h

index fbd76f23084e9f57e2a8a9ce49f35d48309680ac..07216a27decfb89a84762e5768c7eab70d351ba7 100644 (file)
@@ -1049,22 +1049,25 @@ inline s32 mystoi(const std::string &s, s32 min, s32 max)
 // MSVC2010 includes it's own versions of these
 //#if !defined(_MSC_VER) || _MSC_VER < 1600
 
-inline s32 mystoi(std::string s)
+inline s32 mystoi(const std::string &s)
 {
        return atoi(s.c_str());
 }
 
-inline s32 mystoi(std::wstring s)
+inline s32 mystoi(const std::wstring &s)
 {
        return atoi(wide_to_narrow(s).c_str());
 }
 
-inline float mystof(std::string s)
+inline float mystof(const std::string &s)
 {
-       float f;
+       // This crap causes a segfault in certain cases on MinGW
+       /*float f;
        std::istringstream ss(s);
        ss>>f;
-       return f;
+       return f;*/
+       // This works in that case
+       return atof(s.c_str());
 }
 
 //#endif