path: root/src/opengl/qgl_p.h
diff options
authorSamuel Rødal <>2012-11-26 16:39:40 +0100
committerThe Qt Project <>2012-11-26 17:33:37 +0100
commit6633dbbac49f4ce8a89b67090fdffaa8c8126eb5 (patch)
treec0112f9b3dd218d79599d4727111c688e2b7f57a /src/opengl/qgl_p.h
parent8534bb3dd661aa9875a0cede1b05038e43c215a0 (diff)
Fixed crash in tst_qglthreads.
QGLTextureCache has a read write locker to protect texture lookups. However, even calling QCache::object() might modify the cache, causing race conditions, since it modifies the priority order of the objects in the cache. Therefore, we need to protect it with a QWriteLocker instead of a QReadLocker. Task-number: QTBUG-22560 Change-Id: I46fffc624ace27e25fb100f865e1df0a19b9093d Reviewed-by: Gabriel de Dietrich <>
Diffstat (limited to 'src/opengl/qgl_p.h')
1 files changed, 1 insertions, 1 deletions
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 58f6a94d0e..7154545eb5 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -504,7 +504,7 @@ int QGLTextureCache::maxCost()
QGLTexture* QGLTextureCache::getTexture(QGLContext *ctx, qint64 key)
- QReadLocker locker(&m_lock);
+ QWriteLocker locker(&m_lock);
const QGLTextureCacheKey cacheKey = {key, QGLContextPrivate::contextGroup(ctx)};
return m_cache.object(cacheKey);