Merge pull request #7584 from zzmp/log/dep-is-set

Avoid warning for expected unset PresentThread
This commit is contained in:
Brad Hefta-Gaub 2016-04-07 14:47:56 -07:00
commit 772e7b95f6
2 changed files with 15 additions and 2 deletions

View file

@ -245,8 +245,10 @@ bool OpenGLDisplayPlugin::activate() {
#if THREADED_PRESENT
// Start the present thread if necessary
auto presentThread = DependencyManager::get<PresentThread>();
if (!presentThread) {
QSharedPointer<PresentThread> presentThread;
if (DependencyManager::isSet<PresentThread>()) {
presentThread = DependencyManager::get<PresentThread>();
} else {
auto widget = _container->getPrimaryWidget();
DependencyManager::set<PresentThread>();
presentThread = DependencyManager::get<PresentThread>();

View file

@ -49,6 +49,9 @@ public:
template<typename T>
static QSharedPointer<T> get();
template<typename T>
static bool isSet();
template<typename T, typename ...Args>
static QSharedPointer<T> set(Args&&... args);
@ -89,6 +92,14 @@ QSharedPointer<T> DependencyManager::get() {
return instance.toStrongRef();
}
template <typename T>
bool DependencyManager::isSet() {
static size_t hashCode = manager().getHashCode<T>();
QSharedPointer<Dependency>& instance = manager().safeGet(hashCode);
return !instance.isNull();
}
template <typename T, typename ...Args>
QSharedPointer<T> DependencyManager::set(Args&&... args) {
static size_t hashCode = manager().getHashCode<T>();