Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.8.0, 5.9.0
-
None
-
All environments
Description
Crash occurs when pixmap is being removed from QPixmapCache using this function:
void QPixmapCache::remove(const QString &key)
The crash actually occurs in qtbase/src/gui/image/qpixmapcache.cpp:387:
return QCache<QPixmapCache::Key, QPixmapCacheEntry>::remove(cacheKey.value());
In this line cacheKey does not exist.
Here is the call stack:
Qt5Guid.dll!qHash(const QPixmapCache::Key & k) Line 235 C++ Qt5Guid.dll!qHash<QPixmapCache::Key>(const QPixmapCache::Key & t, unsigned int seed) Line 111 C++ Qt5Guid.dll!QHash<QPixmapCache::Key,QCache<QPixmapCache::Key,QPixmapCacheEntry>::Node>::findNode(const QPixmapCache::Key & akey, unsigned int * ahp) Line 921 C++ Qt5Guid.dll!QHash<QPixmapCache::Key,QCache<QPixmapCache::Key,QPixmapCacheEntry>::Node>::find(const QPixmapCache::Key & akey) Line 889 C++ Qt5Guid.dll!QCache<QPixmapCache::Key,QPixmapCacheEntry>::remove(const QPixmapCache::Key & key) Line 143 C++ Qt5Guid.dll!QPMCache::remove(const QString & key) Line 388 C++ Qt5Guid.dll!QPixmapCache::remove(const QString & key) Line 628 C++ qt-crash.exe!main(int argc, char * * argv) Line 62 C++ qt-crash.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 104 C++
See source example in the attachment qt-crash.zip.
There is no such crash in Qt 5.7.1