Call stack is:
WxWidgets is 3.1.1 on Windows 10. If I comment the call tip out, it seems that it does not happen (although I'm not sure).#0 ?? wxEvtHandler::SearchDynamicEventTable (this=0x833c440, event=...) (../../src/common/event.cpp:1898)
#1 0x3f3b573 wxEvtHandler::TryHereOnly(this=0x833c440, event=...) (../../src/common/event.cpp:1589)
#2 0x3f9e580 wxEvtHandler::TryBeforeAndHere(this=0x833c440, event=...) (../../include/wx/event.h:3873)
#3 0x3f3b3ab wxEvtHandler::ProcessEventLocally(this=0x833c440, event=...) (../../src/common/event.cpp:1526)
#4 0x3f3b34c wxEvtHandler::ProcessEvent(this=0x833c440, event=...) (../../src/common/event.cpp:1499)
#5 0x5a41611 wxStyledTextCtrl::NotifyParent(this=0x833c440, _scn=0x13df6e4) (../../src/stc/stc.cpp:5578)
#6 0x5a4a35b ScintillaWX::NotifyParent(this=0x833c820, scn=...) (../../src/stc/ScintillaWX.cpp:492)
#7 0x5a5ea44 Editor::NotifyDwelling(this=0x833c820, pt=..., state=true) (../../src/stc/scintilla/src/Editor.cxx:2498)
#8 0x5a6b14d Editor::TickFor(this=0x833c820, reason=Editor::tickDwell) (../../src/stc/scintilla/src/Editor.cxx:4978)
#9 0x5b8af20 wxSTCTimer::Notify(this=0x83472c0) (../../src/stc/ScintillaWX.cpp:65)
#10 0x3f9d7e8 wxTimerImpl::Notify(this=0x8347328) (../../include/wx/private/timer.h:47)
#11 0x3f29c70 wxProcessTimer(timer=...) (../../src/msw/timer.cpp:160)
#12 0x3f29cdd wxTimerWndProc(HWND__*, unsigned int, unsigned int, long)@16(hWnd=0x1e192e, message=275, wParam=40, lParam=0) (../../src/msw/timer.cpp:173)
#13 0x75a1e0bb USER32!AddClipboardFormatListener() (C:\Windows\System32\user32.dll:??)
#14 0x75a28849 USER32!EndTask() (C:\Windows\System32\user32.dll:??)
#15 0x3f29c73 wxProcessTimer(timer=...) (../../src/msw/timer.cpp:161)
#16 0x1e192e ?? () (??:??)
#17 0x113 ?? () (??:??)
#18 0x28 ?? () (??:??)
#19 ?? ?? () (??:??)
I have all events connected and disconnected properly, but as soon as the call tip pops up, it throws me this.
But: It only happens in about 1% or less of the call tips.
A call tip is shown by connecting the DWELL event and calling CallTipShow(pos,string) inside that function.
I tried wxUpdateLocker since I had the wild guess of having two events called at the same time, but all I can do is mess around with how often it happens.
It did not happen with wxWidgets 3.0.x or Windows 7 however... But that is a wild guess since a lot in the code has changed since then.
Have literally the same code for about a year now... And it happened after a window 10 update right now..?
Any help would be great appreciated.
Seems to happen here according to GDB:
Code: Select all
if ( needToPruneDeleted )
{
size_t nNew = 0;
for ( size_t n = 0; n != dynamicEvents.size(); n++ )
{
if ( dynamicEvents[n] )
dynamicEvents[nNew++] = dynamicEvents[n];
}
wxASSERT( nNew != dynamicEvents.size() );
dynamicEvents.resize(nNew); //<<<<<--------------- GDB is in this line when I switch to the frame
}
return false;