]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/ephemeris.cxx
Ron Jensen: fixed a potential NaN and Segfault in JSBSim propeller code
[flightgear.git] / src / Environment / ephemeris.cxx
index 68c0bedf8bac29607b13970b281f3f6bcb1008f9..21ff38b4d308335ae89d29cfadd40a0ad93099ad 100644 (file)
@@ -32,6 +32,10 @@ Ephemeris::Ephemeris() :
   _impl(NULL),
   _latProp(NULL)
 {
+    SGPath ephem_data_path(globals->get_fg_root());
+    ephem_data_path.append("Astro");
+    _impl = new SGEphemeris(ephem_data_path.c_str());
+    globals->set_ephem(_impl);
 }
 
 Ephemeris::~Ephemeris()
@@ -41,19 +45,13 @@ Ephemeris::~Ephemeris()
 
 void Ephemeris::init()
 {
-  if (_impl) {
-    return;
-  }
-  
-  SGPath ephem_data_path(globals->get_fg_root());
-  ephem_data_path.append("Astro");
-  _impl = new SGEphemeris(ephem_data_path.c_str());
-  globals->set_ephem(_impl);
+  _latProp = fgGetNode("/position/latitude-deg", true);
+  update(0.0);
 }
 
 void Ephemeris::postinit()
 {
-  update(0.0);
+  
 }
 
 static void tieStar(const char* prop, Star* s, double (Star::*getter)() const)
@@ -63,8 +61,6 @@ static void tieStar(const char* prop, Star* s, double (Star::*getter)() const)
 
 void Ephemeris::bind()
 {
-  _latProp = fgGetNode("/position/latitude-deg", true);
-  
   tieStar("/ephemeris/sun/xs", _impl->get_sun(), &Star::getxs);
   tieStar("/ephemeris/sun/ys", _impl->get_sun(), &Star::getys);
   tieStar("/ephemeris/sun/ze", _impl->get_sun(), &Star::getze);