diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-05-13 22:18:43 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-05-13 22:19:10 +0200 |
commit | 3d4aeb791990f359e277efbfb0a1f1793945b55d (patch) | |
tree | e877b7b4ad76d554aa3dbe6131d03b98a7447c63 /src/gui/kernel/qopenglcontext_p.h | |
parent | b861c43395b17d5df34f24853faa21b9824a53af (diff) | |
parent | c8de2a8b5f5d0b9b3bc1d8ed8d3027ac40b00ee3 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
src/gui/kernel/qguiapplication.cpp
Change-Id: Ibe75603dc8a51769db6550ea3f07bc8d19b0be85
Diffstat (limited to 'src/gui/kernel/qopenglcontext_p.h')
-rw-r--r-- | src/gui/kernel/qopenglcontext_p.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gui/kernel/qopenglcontext_p.h b/src/gui/kernel/qopenglcontext_p.h index 8c6a0a04ca..a7525c0e54 100644 --- a/src/gui/kernel/qopenglcontext_p.h +++ b/src/gui/kernel/qopenglcontext_p.h @@ -171,7 +171,9 @@ public: template <typename T> T *value(QOpenGLContext *context) { QOpenGLContextGroup *group = context->shareGroup(); - QMutexLocker locker(&group->d_func()->m_mutex); + // Have to use our own mutex here, not the group's, since + // m_groups has to be protected too against any concurrent access. + QMutexLocker locker(&m_mutex); T *resource = static_cast<T *>(group->d_func()->m_resources.value(this, 0)); if (!resource) { resource = new T(context); @@ -183,6 +185,7 @@ public: private: QAtomicInt active; QList<QOpenGLContextGroup *> m_groups; + QMutex m_mutex; }; class QPaintEngineEx; |