more grid folding: got rid of duplicate version of methods for finding the closest...
[wxWidgets.git] / src / common / string.cpp
index 827099f0a611bd82f7329006aeca04923e3d8ea8..595caf71257daa6259c51b4c006b22304f15a879 100644 (file)
@@ -60,6 +60,12 @@ const size_t wxString::npos = (size_t) -1;
 
 #if wxUSE_STRING_POS_CACHE
 
+#ifdef wxHAS_COMPILER_TLS
+
+wxTLS_TYPE(wxString::Cache) wxString::ms_cache;
+
+#else // !wxHAS_COMPILER_TLS
+
 struct wxStrCacheInitializer
 {
     wxStrCacheInitializer()
@@ -70,15 +76,23 @@ struct wxStrCacheInitializer
     }
 };
 
+/*
+wxString::Cache& wxString::GetCache()
+{
+    static wxTLS_TYPE(Cache) s_cache;
+
+    return wxTLS_VALUE(s_cache);
+}
+*/
+
 static wxStrCacheInitializer gs_stringCacheInit;
 
+#endif // wxHAS_COMPILER_TLS/!wxHAS_COMPILER_TLS
+
 // gdb seems to be unable to display thread-local variables correctly, at least
 // not my 6.4.98 version under amd64, so provide this debugging helper to do it
 #ifdef __WXDEBUG__
 
-namespace
-{
-
 struct wxStrCacheDumper
 {
     static void ShowAll()
@@ -100,8 +114,6 @@ struct wxStrCacheDumper
     }
 };
 
-} // anonymous namespace
-
 void wxDumpStrCache() { wxStrCacheDumper::ShowAll(); }
 
 #endif // __WXDEBUG__
@@ -110,12 +122,9 @@ void wxDumpStrCache() { wxStrCacheDumper::ShowAll(); }
 
 wxString::CacheStats wxString::ms_cacheStats;
 
-namespace
+struct wxStrCacheStatsDumper
 {
-
-struct ShowCacheStats
-{
-    ~ShowCacheStats()
+    ~wxStrCacheStatsDumper()
     {
         const wxString::CacheStats& stats = wxString::ms_cacheStats;
 
@@ -140,9 +149,9 @@ struct ShowCacheStats
                    stats.lentot, 100.*float(stats.lenhits)/stats.lentot);
         }
     }
-} s_showCacheStats;
+};
 
-} // anonymous namespace
+static wxStrCacheStatsDumper s_showCacheStats;
 
 #endif // wxPROFILE_STRING_CACHE
 
@@ -2114,10 +2123,14 @@ wxUTF8StringBufferLength::~wxUTF8StringBufferLength()
 // wxCharBufferType<T>
 // ----------------------------------------------------------------------------
 
+#ifndef __VMS_BROKEN_TEMPLATES
 template<>
+#endif
 wxCharTypeBuffer<char>::Data
 wxCharTypeBuffer<char>::NullData(NULL);
 
+#ifndef __VMS_BROKEN_TEMPLATES
 template<>
+#endif
 wxCharTypeBuffer<wchar_t>::Data
 wxCharTypeBuffer<wchar_t>::NullData(NULL);