sal/osl/all/log.cxx |   25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

New commits:
commit 28d8a59d9cd3819dc558e397a6b14cef17c55245
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Mon Oct 14 13:13:00 2024 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Tue Oct 15 15:07:40 2024 +0200

    cid#1557682 alt fix for Initialization or destruction ordering is 
unspecified
    
    Change-Id: Ibbcc3808a7a7ec71a046b263757506f61ac48093
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174970
    Tested-by: Jenkins
    Tested-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/sal/osl/all/log.cxx b/sal/osl/all/log.cxx
index 96afdd68c810..6d6e808e7446 100644
--- a/sal/osl/all/log.cxx
+++ b/sal/osl/all/log.cxx
@@ -55,16 +55,14 @@ bool const sal_use_syslog = false;
 
 namespace {
 
-struct TimeContainer
+TimeValue GetTime()
 {
     TimeValue aTime;
-    TimeContainer()
-    {
-        osl_getSystemTime(&aTime);
-    }
-};
+    osl_getSystemTime(&aTime);
+    return aTime;
+}
 
-TimeContainer aStartTime;
+const TimeValue aStartTime = GetTime();
 
 bool equalStrings(
     char const * string1, std::size_t length1, char const * string2,
@@ -276,26 +274,21 @@ void maybeOutputTimestamp(std::ostringstream &s) {
         s << ts << '.' << milliSecs << ':';
     }
 
-// disable this fairly obscure feature when building with coverity
-// to avoid a bazillion 'Initialization or destruction ordering is unspecified'
-// warnings about the use of aStartTime
-#if !defined(__COVERITY__) || __COVERITY_MAJOR__ > 2023
     if (outputRelativeTimer)
     {
-        int seconds = now.Seconds - aStartTime.aTime.Seconds;
+        int seconds = now.Seconds - aStartTime.Seconds;
         int milliSeconds;
-        if (now.Nanosec < aStartTime.aTime.Nanosec)
+        if (now.Nanosec < aStartTime.Nanosec)
         {
             seconds--;
-            milliSeconds = 1000 - (aStartTime.aTime.Nanosec - now.Nanosec) / 
1000000;
+            milliSeconds = 1000 - (aStartTime.Nanosec - now.Nanosec) / 1000000;
         }
         else
-            milliSeconds = (now.Nanosec - aStartTime.aTime.Nanosec) / 1000000;
+            milliSeconds = (now.Nanosec - aStartTime.Nanosec) / 1000000;
         char relativeTimestamp[100];
         snprintf(relativeTimestamp, sizeof(relativeTimestamp), "%d.%03d", 
seconds, milliSeconds);
         s << relativeTimestamp << ':';
     }
-#endif
 }
 
 #endif

Reply via email to