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.