summaryrefslogtreecommitdiffstats
path: root/src/object
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2013-02-28 22:56:44 +0100
committerPiotr Dziwinski <piotrdz@gmail.com>2013-02-28 22:56:44 +0100
commitf729686539b4e4628ab818e1a2bffbe1d48ed114 (patch)
tree27c1ce84f2584140da019201929958a8f4bd1bf1 /src/object
parent08c646bb929c7bc98b005521b6e0c14428f651d0 (diff)
downloadcolobot-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.cpp9
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