summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/stringtable.h
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-02-07 13:18:48 +0100
committerhjk <hjk@qt.io>2018-02-07 13:32:08 +0000
commit87543118d5516dba3d1fc111206db5df8dcc5b37 (patch)
tree8bd9755da124ef6af466d6ae4a1f9cb813cd1ee6 /src/plugins/cpptools/stringtable.h
parentd5cd95c702a590ab0ccd9678418e3132cc43e350 (diff)
downloadqt-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.h43
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