← Back to team overview

kicad-developers team mailing list archive

Problem with the new quasimodal

 

Testing the latest 4845, got curious with the new quasimodal loop.

By the way, at the bottom there is probably a typo
(findWindowReursively), don't know if that section is live (it's ifdeffed)

On the stock build requesting the edit component dialog (AFAIK the only
one requesting the loop) makes the dialog appear and immediately close
(a flash).

On a debug instrumented build (my fork, but that part *shouldn't* have
been changed) I see an assert in between:

ASSERT INFO:
./src/gtk/evtloop.cpp(56): assert "!IsRunning()" failed in Run(): can't reenter a message loop

BACKTRACE:
[1] wxOnAssert(char const*, int, char const*, char const*, char const*)
[2] wxGUIEventLoop::Run()
[3] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[4] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[5] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[6] wxEvtHandler::DoTryChain(wxEvent&)
[7] wxEvtHandler::ProcessEvent(wxEvent&)
[8] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[9] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
... cut usual gtk/glib junk
[32] gtk_main
[33] wxGUIEventLoop::Run()

The gdb frame dump seems more interesting:
#6  0x00007ffff6c8eb5e in wxOnAssert
#7  0x00007ffff6e25878 in wxGUIEventLoop::Run
#8  0x00007fffeeeabefb in DIALOG_SHIM::ShowQuasiModal
#9  0x00007fffeed1d4e2 in SCH_EDIT_FRAME::EditComponent
#10 0x00007fffeee3c274 in SCH_EDIT_FRAME::OnEditItem

On the terminal I see this (maybe is useful):

21:21:37: Debug: Load schematic cache library file </home/lomarcan/cvswork/rpm-spx/Schemi/lgs-rpmspark-cache.lib>
OnListItemSelected()
wxFrame 14SCH_EDIT_FRAME: disabled
./src/gtk/evtloop.cpp(56): assert "!IsRunning()" failed in Run(): can't reenter a message loop
wxFrame 14SCH_EDIT_FRAME: enabled

Seems that at least my wx/gtk (2.9.4.0/2.24.20) combination doesn't like the nested event loop...

Tell me if I can give more informations or do other tests

-- 
Lorenzo Marcantonio
Logos Srl


Follow ups