From 823d4170fc884d3707425c13198c2973b049c3b3 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 13 Aug 2017 14:16:00 -0600 Subject: static members can apparently still lead to crashes... --- common/resource.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'common/resource.cpp') 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 { public: QByteArrayList capabilities; - static QHash> s_loadedFactories; }; -QHash> ResourceFactory::Private::s_loadedFactories; +typedef QHash> FactoryRegistry; +Q_GLOBAL_STATIC(FactoryRegistry, s_loadedFactories); ResourceFactory::ResourceFactory(QObject *parent, const QByteArrayList &capabilities) : QObject(parent), d(new ResourceFactory::Private) { @@ -73,7 +73,7 @@ ResourceFactory::~ResourceFactory() ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) { - ResourceFactory *factory = Private::s_loadedFactories.value(resourceName); + ResourceFactory *factory = s_loadedFactories->value(resourceName); if (factory) { return factory; } @@ -96,7 +96,7 @@ ResourceFactory *ResourceFactory::load(const QByteArray &resourceName) if (object) { factory = qobject_cast(object); if (factory) { - Private::s_loadedFactories.insert(resourceName, factory); + s_loadedFactories->insert(resourceName, factory); //TODO: Instead of always loading both facades and adaptorfactories into the respective singletons, we could also leave this up to the caller. (ResourceFactory::loadFacades(...)) factory->registerFacades(resourceName, FacadeFactory::instance()); factory->registerAdaptorFactories(resourceName, AdaptorFactoryRegistry::instance()); -- cgit v1.2.3