[wxPython] line.SetEnds() produces a crash?

I'm using wxPython version 2.2.0 on M$ Windows (NT4, if that matters).
When I try to invoke the SetEnds method on a wxLineShape object,
the result is an error box saying "OleMainThreadWndName: python.exe -
Application Error", complaining about being unable to read memory at
address 0x00000010.

A brief visit to the debugger indicates that it's happening in this
function:

00FC583B push ebp
00FC583C mov ebp,esp
00FC583E mov eax,dword ptr [ecx+17Ch]
00FC5844 fld qword ptr [ebp+8]
00FC5847 mov edx,dword ptr [eax+10h] <--- HERE.
00FC584A mov eax,dword ptr [eax+14h]
00FC584D mov edx,dword ptr [edx+8]
00FC5850 mov eax,dword ptr [eax+8]
00FC5853 fstp qword ptr [edx]
00FC5855 fld qword ptr [ebp+10h]
00FC5858 fstp qword ptr [edx+8]
00FC585B fld qword ptr [ebp+18h]
00FC585E fstp qword ptr [eax]
00FC5860 fld qword ptr [ebp+20h]
00FC5863 fstp qword ptr [eax+8]
00FC5866 fld qword ptr [ebp+8]
00FC5869 fadd qword ptr [ebp+18h]
00FC586C fmul qword ptr ds:[0FDAA40h]
00FC5872 fstp qword ptr [ecx+20h]
00FC5875 fld qword ptr [ebp+10h]
00FC5878 fadd qword ptr [ebp+20h]
00FC587B fmul qword ptr ds:[0FDAA40h]
00FC5881 fstp qword ptr [ecx+28h]
00FC5884 pop ebp
00FC5885 ret 20h

so presumably this is an attempt to access something via a
null pointer. I don't know enough x86 assembler to be very
sure what the function's doing; coordinate transformation,
maybe?

The call stack contains two entries in OGLC.DLL followed
by a number in Python itself.

I don't get behaviour like this from (e.g.) a line whose
endpoints are anchored to other shapes instead of being
specified explicitly.

Is this a known bug? Or is my setup broken? If it's a bug,
is there a fix?

I'm not subscribed to this list. I'd be grateful if any replies
could be cc'ed to me at gmccaughan@synaptics-uk.com .
Thanks muchly.

···

--
g

I'm using wxPython version 2.2.0 on M$ Windows (NT4, if that matters).
When I try to invoke the SetEnds method on a wxLineShape object,
the result is an error box saying "OleMainThreadWndName: python.exe -
Application Error", complaining about being unable to read memory at
address 0x00000010.

Apparently you must call line.MakeLineControlPoints(2) before you call
line.SetEnds(...), otherwise the line object has no points list to be set by
SetEnds.

···

--
Robin Dunn
Software Craftsman
robin@AllDunn.com
http://wxpython.org Java give you jitters?
http://wxpros.com Relax with wxPython!