From 2f2ef80ec274daa0f7a814b28429f48447cd88b0 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Wed, 21 Mar 2012 02:16:22 +0200
Subject: [PATCH] Use atof() in mystof(), because istringstream>>float randomly
 causes a segfault on mingw

---
 src/utility.h | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/utility.h b/src/utility.h
index fbd76f230..07216a27d 100644
--- a/src/utility.h
+++ b/src/utility.h
@@ -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
-- 
GitLab