From: david Date: Sun, 7 Apr 2002 21:20:16 +0000 (+0000) Subject: Patch from Frederic Bouvier (FIXME comments added by David Megginson): X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=aa872ed0409df583bf45ed31fcedd2699f44a357;p=flightgear.git Patch from Frederic Bouvier (FIXME comments added by David Megginson): 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 ! --- diff --git a/src/Main/fg_props.cxx b/src/Main/fg_props.cxx index 2d63d14f1..3da3334ed 100644 --- a/src/Main/fg_props.cxx +++ b/src/Main/fg_props.cxx @@ -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; }