I didn't realize this until reading about it in this thread - I don't know what to do about it either; it's been there for years, probably since I added the IEM guis to Pd (2000 or so?)
There's no good way to fix it and it can't be taken out compatibly - perhaps it should just print a warning now.
cheers Miller
On Fri, May 18, 2012 at 08:40:54AM -0700, Jonathan Wilkes wrote:
----- Original Message -----
From: Claude Heiland-Allen claude@goto10.org To: pd-list@iem.at Cc: Sent: Friday, May 18, 2012 7:08 AM Subject: Re: [PD] variable receive objects?
On 14/05/12 19:43, Jonathan Wilkes wrote:
From: IOhannes m zmoelnigzmoelnig@iem.at On 2012-05-14 05:02, John Harrison wrote:
 I've used those 2 objects a lot and thought they seemed
pretty
 stable...
that's because the "trivial" case (where receiving data
and
changing the receive label are completely independent of each other (stackwise)) won't create much of a problem.
How do I manifest the bug?
See attached. Uses iem_r, though it should make no difference which settable-receive you use.
WARNING: clicking the "boom" message makes Pd segfault :WARNING
To understand this you need to know that pd stores a receiver in the symbol table. When there is only one receiver, it's just a pointer to the object, but when there's more than one there's a proxy object that contains a list. When you change a receiver it can end up deleting the proxy object if the receiver count for a symbol drops from 2 to 1. Deleting an object while code is executing in its context -> boom.
Thanks, Claude.
I just want to point out that this affects every iemgui as well.
Claude
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list