I’ve found something a bit strange. On OSX, under some circumstances, when I destroy a QDeclarativeView and then try to create a new one, my process hangs inside of QDeclarativeView’s constructor. Here’s the stack trace:
0 select$DARWIN_EXTSN 0x7fff8dcab322
1 qt_safe_select 0x100e55b66
2 QNativeSocketEnginePrivate::nativeSelect 0x100b8c4d4
3 QNativeSocketEngine::waitForReadOrWrite 0x100b89b4a
4 QAbstractSocket::waitForReadyRead 0x100b80084
5 QPacketProtocol::waitForReadyRead 0x10034923e
6 QTcpServerConnection::waitForMessage 0x105787c8a
7 non-virtual thunk to QTcpServerConnection::waitForMessage() 0x105787cad
8 QDeclarativeDebugServer::waitForMessage 0x10035842a
9 QDeclarativeDebugService::waitForMessage 0x10034b080
10 QJSDebugService::addEngine 0x10035ec38
11 QDeclarativeEnginePrivate::init 0x10019ffce
12 QDeclarativeViewPrivate::init 0x100270ef8
13 QDeclarativeView::QDeclarativeView 0x100270eba
14 DomainLoginScreen::DomainLoginScreen domainloginscreen.cpp 9 0x10001d00d
15 DomainLoginScreen::DomainLoginScreen domainloginscreen.cpp 25 0x10001cfcd
16 ShowDomainLoginInteraction::ShowDomainLoginInteraction active_states.cpp 73 0x10001ec81
17 ShowDomainLoginInteraction::ShowDomainLoginInteraction active_states.cpp 76 0x10001e945
18 boost::statechart::state<ShowDomainLoginInteraction, Active, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::shallow_construct state.hpp 89 0x10001259c
...
Note that this only happens when I enable QML debugging in my project build options.
I could probably put together a debug version of Qt to investigate this, but before I do that, does anyone know anything about this? What might be causing this? I’m creating a QMainWindow, then I’m creating a QDeclarativeView and assigning it as the QMainWindows’s central widget. Then I create a new QDeclarativeView and assign that as the QMainWindow’s central widget.
↧