From aa872ed0409df583bf45ed31fcedd2699f44a357 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 7 Apr 2002 21:20:16 +0000 Subject: [PATCH] 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 ! --- src/Main/fg_props.cxx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) 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; }