]> git.mxchange.org Git - flightgear.git/commitdiff
Patch from Frederic Bouvier (FIXME comments added by David Megginson):
authordavid <david>
Sun, 7 Apr 2002 21:20:16 +0000 (21:20 +0000)
committerdavid <david>
Sun, 7 Apr 2002 21:20:16 +0000 (21:20 +0000)
I made these modifications to correct the problem of getter functions
returning pointers to local variables. Those variables are no longer
locals and become static. One should be aware that it kills reentrancy
!

src/Main/fg_props.cxx

index 2d63d14f160f5ed6419b2f6f70c5daf1b1e68133..3da3334eda518fda571e68a903e7b277bacb45c5 100644 (file)
@@ -102,7 +102,7 @@ static const char *
 getLoggingClasses ()
 {
   sgDebugClass classes = logbuf::get_log_classes();
-  string result = "";
+  static string result = "";   // FIXME
   for (int i = 0; log_class_mappings[i].c != SG_UNDEFD; i++) {
     if ((classes&log_class_mappings[i].c) > 0) {
       if (!result.empty())
@@ -249,14 +249,12 @@ getElapsedTime_ms ()
 static const char *
 getDateString ()
 {
-  string out;
-  char buf[64];
+  static char buf[64];         // FIXME
   struct tm * t = globals->get_time_params()->getGmt();
   sprintf(buf, "%.4d-%.2d-%.2dT%.2d:%.2d:%.2d",
          t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
          t->tm_hour, t->tm_min, t->tm_sec);
-  out = buf;
-  return out.c_str();
+  return buf;
 }
 
 
@@ -313,14 +311,12 @@ setDateString (const char * date_string)
 static const char *
 getGMTString ()
 {
-  string out;
-  char buf[16];
+  static char buf[16];         // FIXME
   struct tm *t = globals->get_time_params()->getGmt();
   sprintf(buf, " %.2d:%.2d:%.2d",
          t->tm_hour, t->tm_min, t->tm_sec);
   // cout << t << " " << buf << endl;
-  out = buf;
-  return out.c_str();
+  return buf;
 }