[PD] variable receive objects?

Jonathan Wilkes jancsika at yahoo.com
Fri May 18 18:24:44 CEST 2012


----- Original Message -----

> From: Miller Puckette <msp at ucsd.edu>
> To: Jonathan Wilkes <jancsika at yahoo.com>
> Cc: Claude Heiland-Allen <claude at goto10.org>; "pd-list at iem.at" <pd-list at iem.at>
> Sent: Friday, May 18, 2012 12:06 PM
> Subject: Re: [PD] variable receive objects?
> 
> 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?)

Yep.  And for people who send 'receive' messages to iemguis in complex patches, it could 
be quite a doozy, as the problem doesn't manifest until you get more than one 
object using that receive-symbol.  (Well, at least I couldn't get it to crash with just 
one object...)

> 
> 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 at goto10.org>
>>  > To: pd-list at 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 zmoelnig<zmoelnig at 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 at iem.at mailing list
>>  > UNSUBSCRIBE and account-management -> 
>>  > http://lists.puredata.info/listinfo/pd-list
>>  > 
>> 
>>  _______________________________________________
>>  Pd-list at iem.at mailing list
>>  UNSUBSCRIBE and account-management -> 
> http://lists.puredata.info/listinfo/pd-list
> 



More information about the Pd-list mailing list