Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-45991

GridView crashes when switching screens

    XMLWordPrintable

Details

    • 5f23d4eb103baa21225adb4c3dd666dbefef6515

    Description

      Consider the following scenario:

      • Multi-screen environment
      • Qml GridView with a delegate containing an Image element with cache property set to false
      • The delegate image source is set to retrieve an image from an image provider
      import QtQuick 2.4
      import QtQuick.Window 2.2
      
      Window {
          visible: true
      
          GridView {
              anchors.fill: parent
      
              model: ListModel {
                  id: testModel
      
                  Component.onCompleted: {
                      for(var i = 0; i < 1000; i++) {
                          testModel.append({"id": "item " + i})
                      }
                  }
              }
      
              delegate: Image {
                  id: img
                  width: 100
                  height: 100
                  source: "image://imageprovider/test_" + id
                  cache: false
              }
          }
      }
      

      Steps to Reproduce:
      1. Launch app
      2. Position the application window through the several screens using WinKey+Left/Right arrow keys
      3. The application crashes

      Note: Crash occurs with or without a registered image provider.

      Stacktrace
      0	QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData>>::data	qscopedpointer.h	135	0x54c887fa	
      1	qGetPtrHelper<QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData>>>	qglobal.h	961	0x54c6cffb	
      2	QQmlEngine::d_func	qqmlengine.h	150	0x54c88763	
      3	QQmlEngine::imageProvider	qqmlengine.cpp	1127	0x54eee0a1	
      4	QQuickPixmap::load	qquickpixmapcache.cpp	1274	0x640cf64c	
      5	QQuickImageBase::load	qquickimagebase.cpp	215	0x642620ac	
      6	QQuickImageBase::handleScreenChanged	qquickimagebase.cpp	292	0x642625ac	
      7	QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,QtPrivate::List<QScreen *>,void,void (__thiscall QQuickImageBase:: *)(QScreen *)>::call	qobjectdefs_impl.h	500	0x642631ae	
      8	QtPrivate::FunctionPointer<void (__thiscall QQuickImageBase:: *)(QScreen *)>::call<QtPrivate::List<QScreen *>,void>	qobjectdefs_impl.h	519	0x64262af8	
      9	QtPrivate::QSlotObject<void (__thiscall QQuickImageBase:: *)(QScreen *),QtPrivate::List<QScreen *>,void>::impl	qobject_impl.h	143	0x642632a5	
      10	QtPrivate::QSlotObjectBase::call	qobject_impl.h	124	0x547acbbf	
      11	QMetaObject::activate	qobject.cpp	3707	0x5479fb0a	
      12	QMetaObject::activate	qobject.cpp	3582	0x5479f611	
      13	QWindow::screenChanged	moc_qwindow.cpp	626	0x552f014b	
      14	QWindowPrivate::emitScreenChangedRecursion	qwindow.cpp	367	0x552f1450	
      15	QWindowPrivate::setTopLevelScreen	qwindow.cpp	389	0x552f139d	
      16	QGuiApplicationPrivate::processWindowScreenChangedEvent	qguiapplication.cpp	2002	0x552de4c3	
      17	QGuiApplicationPrivate::processWindowSystemEvent	qguiapplication.cpp	1600	0x552de5f2	
      18	QWindowSystemInterface::sendWindowSystemEvents	qwindowsysteminterface.cpp	572	0x552c02d1	
      19	QWindowsGuiEventDispatcher::sendPostedEvents	qwindowsguieventdispatcher.cpp	82	0x54276b91	
      20	qt_internal_proc	qeventdispatcher_win.cpp	414	0x547ed000	
      21	_InternalCallWinProc	USER32		0x74dc7834	
      22	UserCallWinProcCheckWow	USER32		0x74dc7a9a	
      23	DispatchMessageWorker	USER32		0x74dc988e	
      24	DispatchMessageW	USER32		0x74dc98f1	
      25	QEventDispatcherWin32::processEvents	qeventdispatcher_win.cpp	807	0x547edb4e	
      26	QWindowsGuiEventDispatcher::processEvents	qwindowsguieventdispatcher.cpp	73	0x54276aac	
      27	QEventLoop::processEvents	qeventloop.cpp	129	0x54750e5c	
      28	QEventLoop::exec	qeventloop.cpp	204	0x54751062	
      29	QCoreApplication::exec	qcoreapplication.cpp	1188	0x547535e2	
      30	QGuiApplication::exec	qguiapplication.cpp	1508	0x552daf08	
      31	main	main.cpp	38	0x852658	
      32	WinMain	qtmain_win.cpp	112	0x8556cd	
      33	__tmainCRTStartup	crtexe.c	618	0x854abf	
      34	WinMainCRTStartup	crtexe.c	466	0x85487d	
      35	BaseThreadInitThunk	KERNEL32		0x76cd919f	
      36	__RtlUserThreadStart	ntdll_770c0000		0x7711ad1f	
      37	_RtlUserThreadStart	ntdll_770c0000		0x7711acea	
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            mitch_curtis Mitch Curtis
            leandro.do.vale Leandro Vale
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes