[Lldb-commits] [lldb] r216080 - Avoid global contstructors and place static variables inside classes as static local variables and remove the static ivars. Subclasses should use the accessor functions.

Greg Clayton gclayton at apple.com
Wed Aug 20 10:00:22 PDT 2014


Author: gclayton
Date: Wed Aug 20 12:00:21 2014
New Revision: 216080

URL: http://llvm.org/viewvc/llvm-project?rev=216080&view=rev
Log:
Avoid global contstructors and place static variables inside classes as static local variables and remove the static ivars. Subclasses should use the accessor functions.


Modified:
    lldb/trunk/include/lldb/Host/HostInfoBase.h
    lldb/trunk/source/Host/common/HostInfoBase.cpp

Modified: lldb/trunk/include/lldb/Host/HostInfoBase.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/HostInfoBase.h?rev=216080&r1=216079&r2=216080&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/HostInfoBase.h (original)
+++ lldb/trunk/include/lldb/Host/HostInfoBase.h Wed Aug 20 12:00:21 2014
@@ -80,14 +80,6 @@ class HostInfoBase
 
   protected:
     static void ComputeHostArchitectureSupport(ArchSpec &arch_32, ArchSpec &arch_64);
-
-    static uint32_t m_number_cpus;
-    static std::string m_vendor_string;
-    static std::string m_os_string;
-    static std::string m_host_triple;
-
-    static ArchSpec m_host_arch_32;
-    static ArchSpec m_host_arch_64;
 };
 }
 

Modified: lldb/trunk/source/Host/common/HostInfoBase.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/HostInfoBase.cpp?rev=216080&r1=216079&r2=216080&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/HostInfoBase.cpp (original)
+++ lldb/trunk/source/Host/common/HostInfoBase.cpp Wed Aug 20 12:00:21 2014
@@ -22,85 +22,86 @@
 using namespace lldb;
 using namespace lldb_private;
 
-uint32_t HostInfoBase::m_number_cpus = 0;
-std::string HostInfoBase::m_vendor_string;
-std::string HostInfoBase::m_os_string;
-std::string HostInfoBase::m_host_triple;
-ArchSpec HostInfoBase::m_host_arch_32;
-ArchSpec HostInfoBase::m_host_arch_64;
 
 uint32_t
 HostInfoBase::GetNumberCPUS()
 {
     static bool is_initialized = false;
+    uint32_t g_number_cpus = 0;
     if (!is_initialized)
     {
-        m_number_cpus = std::thread::hardware_concurrency();
+        g_number_cpus = std::thread::hardware_concurrency();
         is_initialized = true;
     }
 
-    return m_number_cpus;
+    return g_number_cpus;
 }
 
 llvm::StringRef
 HostInfoBase::GetVendorString()
 {
     static bool is_initialized = false;
+    std::string g_vendor_string;
     if (!is_initialized)
     {
         const ArchSpec &host_arch = HostInfo::GetArchitecture();
         const llvm::StringRef &str_ref = host_arch.GetTriple().getVendorName();
-        m_vendor_string.assign(str_ref.begin(), str_ref.end());
+        g_vendor_string.assign(str_ref.begin(), str_ref.end());
         is_initialized = true;
     }
-    return m_vendor_string;
+    return llvm::StringRef(g_vendor_string);
 }
 
 llvm::StringRef
 HostInfoBase::GetOSString()
 {
     static bool is_initialized = false;
+    std::string g_os_string;
     if (!is_initialized)
     {
         const ArchSpec &host_arch = HostInfo::GetArchitecture();
         const llvm::StringRef &str_ref = host_arch.GetTriple().getOSName();
-        m_os_string.assign(str_ref.begin(), str_ref.end());
+        g_os_string.assign(str_ref.begin(), str_ref.end());
         is_initialized = true;
     }
-    return m_os_string;
+    return llvm::StringRef(g_os_string);
 }
 
 llvm::StringRef
 HostInfoBase::GetTargetTriple()
 {
     static bool is_initialized = false;
+    std::string g_host_triple;
     if (!is_initialized)
     {
         const ArchSpec &host_arch = HostInfo::GetArchitecture();
-        m_host_triple = host_arch.GetTriple().getTriple();
+        g_host_triple = host_arch.GetTriple().getTriple();
         is_initialized = true;
     }
-    return m_host_triple;
+    return g_host_triple;
 }
 
 const ArchSpec &
 HostInfoBase::GetArchitecture(ArchitectureKind arch_kind)
 {
     static bool is_initialized = false;
+    static ArchSpec g_host_arch_32;
+    static ArchSpec g_host_arch_64;
+
     if (!is_initialized)
     {
-        HostInfo::ComputeHostArchitectureSupport(m_host_arch_32, m_host_arch_64);
+        HostInfo::ComputeHostArchitectureSupport(g_host_arch_32, g_host_arch_64);
         is_initialized = true;
     }
 
     // If an explicit 32 or 64-bit architecture was requested, return that.
     if (arch_kind == eArchKind32)
-        return m_host_arch_32;
+        return g_host_arch_32;
     if (arch_kind == eArchKind64)
-        return m_host_arch_64;
+        return g_host_arch_64;
 
     // Otherwise prefer the 64-bit architecture if it is valid.
-    return (m_host_arch_64.IsValid()) ? m_host_arch_64 : m_host_arch_32;
+    return (g_host_arch_64.IsValid()) ? g_host_arch_64 : g_host_arch_32;
 }
 
 void





More information about the lldb-commits mailing list