[PyQt] Re: Crash with shortcircuit signals

Phil Thompson phil at riverbankcomputing.co.uk
Wed Jul 18 21:43:28 BST 2007


On Wednesday 18 July 2007 6:28 pm, Giovanni Bajo wrote:
> On 7/18/2007 10:32 AM, Giovanni Bajo wrote:
> >>> I copied the list removal code back into the destructor (keeping a
> >>> duped copy in the disable() slot), and it seems to work.
> >>>
> >>> Do you agree on this fix? Testcases are really hard and tiresome to
> >>> extract so I'd rather avoid it if it's not really really necessary...
> >>
> >> I can only see one place that a PyQtProxy is explicitly deleted. Can
> >> you try changing the "delete up" in sipQtDestroyUniversalSlot() to
> >> "up->disable()" instead of your fix.
> >
> > It worked. One nit: disable() was a private member, so I changed it to
> > public.
>
> Too fast: I was getting again an infinite loop... and the fix I found
> was to NULLify the nextup and prevup pointers in the disable() method,
> after removing the PyQtProxy from the global list.
>
> Does it make any sense to you?

No.

Are you sure you fully backed out your own fix? My fix is in the current 
snapshot.

Can you detect the infinite loop and generate a backtrace?

Phil


More information about the PyQt mailing list