diff options
author | hjk <hjk@qt.io> | 2018-02-07 13:18:48 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-02-07 13:32:08 +0000 |
commit | 87543118d5516dba3d1fc111206db5df8dcc5b37 (patch) | |
tree | 8bd9755da124ef6af466d6ae4a1f9cb813cd1ee6 /src/plugins/cpptools/stringtable.h | |
parent | d5cd95c702a590ab0ccd9678418e3132cc43e350 (diff) | |
download | qt-creator-87543118d5516dba3d1fc111206db5df8dcc5b37.tar.gz |
CppTools: Apply 'static' pattern to StringTable
This also fixes a crash on loading (some?) projects introduced
in 577bf7c08a.
Change-Id: Ie35d466fa3b84b183118fe93f55393a4c59755de
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/cpptools/stringtable.h')
-rw-r--r-- | src/plugins/cpptools/stringtable.h | 43 |
1 files changed, 11 insertions, 32 deletions
diff --git a/src/plugins/cpptools/stringtable.h b/src/plugins/cpptools/stringtable.h index 3eed7a0ed0..fdac41f1b1 100644 --- a/src/plugins/cpptools/stringtable.h +++ b/src/plugins/cpptools/stringtable.h @@ -25,45 +25,24 @@ #pragma once -#include <QAtomicInt> -#include <QMutex> -#include <QObject> -#include <QRunnable> -#include <QSet> -#include <QTimer> +#include <QString> namespace CppTools { namespace Internal { -class StringTable: public QObject -{ - Q_OBJECT +class CppToolsPluginPrivate; +class StringTable +{ public: - StringTable(); - - QString insert(const QString &string); - void scheduleGC(); - -private: - void startGC(); - void GC(); - - class GCRunner: public QRunnable { - StringTable &m_stringTable; - - public: - GCRunner(StringTable &stringTable): m_stringTable(stringTable) {} - virtual void run() { m_stringTable.GC(); } - } m_gcRunner; - friend class GCRunner; + static QString insert(const QString &string); + static void scheduleGC(); private: - mutable QMutex m_lock; - QAtomicInt m_stopGCRequested; - QSet<QString> m_strings; - QTimer m_gcCountDown; + friend class CppToolsPluginPrivate; + static void initialize(); + static void destroy(); }; -} // Internal namespace -} // CppTools namespace +} // Internal +} // CppTools |