diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2013-02-28 22:56:44 +0100 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2013-02-28 22:56:44 +0100 |
commit | f729686539b4e4628ab818e1a2bffbe1d48ed114 (patch) | |
tree | 27c1ce84f2584140da019201929958a8f4bd1bf1 /src/object | |
parent | 08c646bb929c7bc98b005521b6e0c14428f651d0 (diff) | |
download | colobot-f729686539b4e4628ab818e1a2bffbe1d48ed114.tar.gz colobot-f729686539b4e4628ab818e1a2bffbe1d48ed114.tar.bz2 colobot-f729686539b4e4628ab818e1a2bffbe1d48ed114.zip |
Fixed segfault in light manager
Also fixed minor memory leak
Diffstat (limited to 'src/object')
-rw-r--r-- | src/object/robotmain.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp index 29fdd31..7c6cb77 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3833,7 +3833,12 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) int rankObj = 0; int rankGadget = 0; CObject* sel = 0; + + std::string oldLocale; char *locale = setlocale(LC_NUMERIC, nullptr); + if (locale != nullptr) + oldLocale = locale; + setlocale(LC_NUMERIC, "C"); while (fgets(line, 500, file) != NULL) @@ -4568,8 +4573,8 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } m_dialog->SetSceneRead(""); m_dialog->SetStackRead(""); - - setlocale(LC_NUMERIC, locale); + + setlocale(LC_NUMERIC, oldLocale.c_str()); } //! Creates an object of decoration mobile or stationary |