Bug in wxTimer on msw 64-bit?

Hello,

I got this error today:

wx._core.PyAssertionError: C++ assertion "node != TimerMap().end()"
failed at ..\..\src\msw\timer.cpp(192) in wxTimerWndProc(): bogus
timer id in wxTimerProc

Looking at the source here

http://trac.wxwidgets.org/browser/wxWidgets/trunk/src/msw/timer.cpp
http://trac.wxwidgets.org/browser/wxWidgets/trunk/include/wx/msw/private/timer.h

it seems the 64-bit UINT_PTR is cast to 32-bit unsigned long (even on
64-bit msw, it uses LLP64) everywhere. This probably has issues like
the timer not being killed, since the m_id passed to it is missing the
upper 32-bit part.

-Matthias

Matthias wrote:

Hello,

I got this error today:

wx._core.PyAssertionError: C++ assertion "node != TimerMap().end()"
failed at ..\..\src\msw\timer.cpp(192) in wxTimerWndProc(): bogus
timer id in wxTimerProc

Looking at the source here

wxTrac has been migrated to GitHub Issues - wxWidgets
wxTrac has been migrated to GitHub Issues - wxWidgets

it seems the 64-bit UINT_PTR is cast to 32-bit unsigned long (even on
64-bit msw, it uses LLP64) everywhere. This probably has issues like
the timer not being killed, since the m_id passed to it is missing the
upper 32-bit part.

Please open a Trac ticket for this.

···

--
Robin Dunn
Software Craftsman

The ticket seems to have been opened as http://trac.wxwidgets.org/ticket/10896.

I, too, seem to be experiencing this problem, and I'd like to test to
see if the fix addresses the issue before the next release. I don't
want to set up a build environment to build all of wxPython. Is it
possible someone could build a pre-release Windows 64-bit binary or
maybe just the module(s) affected by the issue so I can confirm the
fix?