]> git.lyx.org Git - lyx.git/commitdiff
Partially revert "Replace static with thread_local when used for caching"
authorGuillaume Munch <gm@lyx.org>
Thu, 4 Aug 2016 12:30:47 +0000 (13:30 +0100)
committerGuillaume Munch <gm@lyx.org>
Thu, 4 Aug 2016 12:39:27 +0000 (13:39 +0100)
As noticed by Stephan, clang on Mac is nowhere near to support thread_local for
some reason:
http://stackoverflow.com/questions/28094794/why-does-apple-clang-disallow-c11-thread-local-when-official-clang-supports

It does not look realistic to me to provide a configure-based alternative. The
solution is to not use thread_local until it is reasonably supported on
Mac. According to sources, this means requiring Xcode >= 8.

This reverts commit 82d4f1a446260333ef1590f3622196e7c76e414d partially.

src/frontends/qt4/GuiFontLoader.cpp
src/frontends/qt4/GuiPainter.cpp
src/frontends/qt4/GuiSymbols.cpp

index 2dacc42d02f2d05f52ba152583890e25eb202811..cc092f5f72ae6f6d60036d26b9132387e4f193dc 100644 (file)
@@ -373,13 +373,9 @@ GuiFontInfo::GuiFontInfo(FontInfo const & f)
 
 bool FontLoader::available(FontInfo const & f)
 {
 
 bool FontLoader::available(FontInfo const & f)
 {
-#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-       static vector<bool> cache_set(NUM_FAMILIES, false);
-       static vector<bool> cache(NUM_FAMILIES, false);
-#else
-       thread_local vector<bool> cache_set(NUM_FAMILIES, false);
-       thread_local vector<bool> cache(NUM_FAMILIES, false);
-#endif
+       // FIXME THREAD
+       static vector<int> cache_set(NUM_FAMILIES, false);
+       static vector<int> cache(NUM_FAMILIES, false);
 
        FontFamily family = f.family();
 #ifdef Q_OS_MAC
 
        FontFamily family = f.family();
 #ifdef Q_OS_MAC
index 5156dc0411501539a5173e51c216f42d47149f05..e613f3ff72dd34768d5725c654e1040d74c8cc3e 100644 (file)
@@ -208,11 +208,8 @@ void GuiPainter::lines(int const * xp, int const * yp, int np,
                return;
 
        // double the size if needed
                return;
 
        // double the size if needed
-#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
+       // FIXME THREAD
        static QVector<QPoint> points(32);
        static QVector<QPoint> points(32);
-#else
-       thread_local QVector<QPoint> points(32);
-#endif
        if (np > points.size())
                points.resize(2 * np);
 
        if (np > points.size())
                points.resize(2 * np);
 
index f4a547e61ed2f64996d87fe587243dbad7ee4bd1..a08d7e578a44af86c8ee756cedbff86ae8df3489 100644 (file)
@@ -152,11 +152,8 @@ const int no_blocks = sizeof(unicode_blocks) / sizeof(UnicodeBlocks);
 QString getBlock(char_type c)
 {
        // store an educated guess for the next search
 QString getBlock(char_type c)
 {
        // store an educated guess for the next search
-#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
+       // FIXME THREAD
        static int lastBlock = 0;
        static int lastBlock = 0;
-#else
-       thread_local int lastBlock = 0;
-#endif
 
        // "clever reset"
        if (c < 0x7f)
 
        // "clever reset"
        if (c < 0x7f)