diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-08-13 14:16:00 -0600 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-08-13 14:16:00 -0600 |
commit | 823d4170fc884d3707425c13198c2973b049c3b3 (patch) | |
tree | 5b5357c7b30412d081f82aac614531ea4dc88288 | |
parent | cfae1cca83739aef7cf185ee7d8fc63b271fed9f (diff) | |
download | sink-823d4170fc884d3707425c13198c2973b049c3b3.tar.gz sink-823d4170fc884d3707425c13198c2973b049c3b3.zip |
static members can apparently still lead to crashes...
-rw-r--r-- | common/resource.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/common/resource.cpp b/common/resource.cpp index 32a92ca..804f0bf 100644 --- a/common/resource.cpp +++ b/common/resource.cpp | |||
@@ -56,10 +56,10 @@ class ResourceFactory::Private | |||
56 | { | 56 | { |
57 | public: | 57 | public: |
58 | QByteArrayList capabilities; | 58 | QByteArrayList capabilities; |
59 | static QHash<QString, QPointer<ResourceFactory>> s_loadedFactories; | ||
60 | }; | 59 | }; |
61 | 60 | ||
62 | QHash<QString, QPointer<ResourceFactory>> ResourceFactory::Private::s_loadedFactories; | 61 | typedef QHash<QString, QPointer<ResourceFactory>> FactoryRegistry; |
62 | Q_GLOBAL_STATIC(FactoryRegistry, s_loadedFactories); | ||
63 | 63 | ||
64 | ResourceFactory::ResourceFactory(QObject *parent, const QByteArrayList &capabilities) : QObject(parent), d(new ResourceFactory::Private) | 64 | ResourceFactory::ResourceFactory(QObject *parent, const QByteArrayList &capabilities) : QObject(parent), d(new ResourceFactory::Private) |
65 | { | 65 | { |
@@ -73,7 +73,7 @@ ResourceFactory::~ResourceFactory() | |||
73 | 73 | ||
74 | ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) | 74 | ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) |
75 | { | 75 | { |
76 | ResourceFactory *factory = Private::s_loadedFactories.value(resourceName); | 76 | ResourceFactory *factory = s_loadedFactories->value(resourceName); |
77 | if (factory) { | 77 | if (factory) { |
78 | return factory; | 78 | return factory; |
79 | } | 79 | } |
@@ -96,7 +96,7 @@ ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) | |||
96 | if (object) { | 96 | if (object) { |
97 | factory = qobject_cast<ResourceFactory *>(object); | 97 | factory = qobject_cast<ResourceFactory *>(object); |
98 | if (factory) { | 98 | if (factory) { |
99 | Private::s_loadedFactories.insert(resourceName, factory); | 99 | s_loadedFactories->insert(resourceName, factory); |
100 | //TODO: Instead of always loading both facades and adaptorfactories into the respective singletons, we could also leave this up to the caller. (ResourceFactory::loadFacades(...)) | 100 | //TODO: Instead of always loading both facades and adaptorfactories into the respective singletons, we could also leave this up to the caller. (ResourceFactory::loadFacades(...)) |
101 | factory->registerFacades(resourceName, FacadeFactory::instance()); | 101 | factory->registerFacades(resourceName, FacadeFactory::instance()); |
102 | factory->registerAdaptorFactories(resourceName, AdaptorFactoryRegistry::instance()); | 102 | factory->registerAdaptorFactories(resourceName, AdaptorFactoryRegistry::instance()); |