0xaaaaaaaaaaaaaaaa means that the code has accesed freed memory, but I can not see where this may happen. This is the relevant code:
void wxsItemEditorContent::OnMouse(wxMouseEvent& event)
{
// Anti-recursion lock
static bool IsRunning = false;
if ( IsRunning ) return;
IsRunning = true;
if ( event.ButtonDown() )
{
SetFocus();
}
else if ( m_MouseState == msWaitForIdle )
{
m_MouseState = msIdle;
}
int NewX = event.m_x;
int NewY = event.m_y;
CalcUnscrolledPosition(NewX,NewY,&NewX,&NewY);
event.m_x = NewX;
event.m_y = NewY;
switch ( m_MouseState )
{
case msDraggingPointInit: OnMouseDraggingPointInit (event); break;
case msDraggingPoint: OnMouseDraggingPoint (event); break;
case msDraggingItemInit: OnMouseDraggingItemInit (event); break;
case msDraggingItem: OnMouseDraggingItem (event); break;
case msTargetSearch: OnMouseTargetSearch (event); break;
case msWaitForIdle: break;
case msIdle: // fall-through
default: OnMouseIdle (event); break;
}
IsRunning = false;
}
EDIT: Cannot reproduce on MSW, may be MacOS-specific.
0xaaaaaaaaaaaaaaaa means that the code has accesed freed memory, but I can not see where this may happen. This is the relevant code:
void wxsItemEditorContent::OnMouse(wxMouseEvent& event)
{
// Anti-recursion lock
static bool IsRunning = false;
if ( IsRunning ) return;
IsRunning = true;
...
IsRunning = false;
}
EDIT: Cannot reproduce on MSW, may be MacOS-specific.
Maybe the usage int StopPropagation () (https://docs.wxwidgets.org/3.0/classwx_event.html#a060a7d222404daff4d3cef30cddeaae3) would be better?
// Anti-recursion lock
static int recursion_count = 0;
static bool IsRunning = false;
if ( ++recursion_count > 2 ) {
recursion_count = 0;
event.StopPropagation();
return;
}
if ( IsRunning ) return;