[PD-dev] some crashes

Krzysztof Czaja czaja at chopin.edu.pl
Tue Feb 10 20:39:13 CET 2004


hi Miller,

Miller Puckette wrote:
...
> Where do I go to reproduce #20 (GOP crash)?  I should fix that one.

Yes, I did not include the 'How-To-Repeat' field in the bulk query
(see it below, in the p.s.).

> I think about the self-closing and hhe IEMGUI "receive" (which are really
> the same underlying problem) I have to do something complicated and shouldn't
> try it for 0.37-1 lest I introduce more problems than I fix.  Also,

I think #22 is different, and quite obvious.  There is nothing
fundamental in iemgui_receive()'s refusal of rebinding -- it is
a plain, local bug.

The reason of the crash is that after an object bound to 'old' has
been sent "receive new", the object is still bound to 'old', but,
since the 'x_rcv' field now points to 'new', the object's
destructor tries to unbind 'new', not 'old' (there is a warning).
After that, the bindlist's 'b_pd' pointer (or bindelem's 'e_who')
dangles, waiting for its prey to fall in the 'old' trap.

Krzysztof

 >Synopsis:       setting the gop flag may lead to crashes

 >Description:
Crash when opening a gop after transforming it from a non-gop in certain
ways (details in How-To-Repeat field).

 >How-To-Repeat:
Make sure the subpatch to be transformed from non-gop to gop
contains at least one text object.  Then, either:

1. after opening the props dialog of the subpatch, first close the
subpatch window, then set the gop flag in the dialog, and finally,
open the transformed subpatch again; or:

2. transform the subpatch (when it has its window closed) by sending
it the 'coords' message, then open it.





More information about the Pd-dev mailing list