[PD] libpd crashes with vlines~ in (libpd) clock_unset (?)

Yuri Turov sine.rdny at gmail.com
Thu Jan 28 12:42:33 CET 2016


Hi Miller and Pascal,

I’m getting the same crash using the latest libpd and pd 0.46-7 (the printout for clock_unset() is exactly as it should be).

Pascal, have you managed to find out what causes the crash?

Thanks,
Yuri


> Hi Pascal -
> 
> You might not have up-to-date Pd sources (needed for multi-instance
> to work) - for instance, here's the latest:
> void clock_unset(t_clock *x)
> {
>     if (x->c_settime >= 0)
>     {
>         if (x == pd_this->pd_clock_setlist)
>             pd_this->pd_clock_setlist = x->c_next;
>         else
>         {
>             t_clock *x2 = pd_this->pd_clock_setlist;
>             while (x2->c_next != x) x2 = x2->c_next;
>             x2->c_next = x->c_next;
>         }
>         x->c_settime = -1;
>     }
> }
> 
> (from either 0.46 or mater branches in git) - I don't know why you'd have an
> old Pd as part of libpd but the line printout below doesn't look roght.
> 
> cheers
> Miller
> 
> On Thu, Jun 11, 2015 at 03:42:59PM +0200, Pascal wrote:
> > Anyone? Am I the only one who is having these clock_unset crashes ?
> > 
> > Pascal
> > 
> > 
> > 
> > > On 01 Jun 2015, at 11:12, Pascal <pascal.douill... at gmail.com> wrote:
> > > 
> > > I have a iOS project developed with XCode that uses libpd to load a Pure 
> > > Data patch. My project uses a mix of [osc~] and [phasor~] with modulated 
> > > parameters (pitch, volume, etc). My app is in 64-bit as now required. I am 
> > > using the latest version of Pure Data and libpd.
> > > 
> > > The Pure Data patch runs fine in Pure Data but it crashes in XCode. I have 
> > > an [osc~] that has its pitch modulated by an envelope. When I change the 
> > > value of the length of the envelope (= modulation rate) on a device, it 
> > > randomly crashes during testing but always on the same line of libpd code. 
> > > I thought it had to do with how fast the parameter was changed but no, it 
> > > also happens when the parameter is slowly changed.
> > > 
> > > Here is below a (reduced) patch where the problem occurs. I have recently 
> > > catched up with Pure Data. Any suggestions or corrections are welcome.
> > > 
> > > modulatedOscillator.pd 
> > > (http://forum.pdpatchrepo.info/uploads/files/upload-9c1506d8-30a2-4af3-8927-b4f97c73474e.pd <http://forum.pdpatchrepo.info/uploads/files/upload-9c1506d8-30a2-4af3-8927-b4f97c73474e.pd>
> > >  
> > > <http://forum.pdpatchrepo.info/uploads/files/upload-9c1506d8-30a2-4af3-8927-b4f97c73474e.pd <http://forum.pdpatchrepo.info/uploads/files/upload-9c1506d8-30a2-4af3-8927-b4f97c73474e.pd>>)
> > > 
> > > Here is a screenshot of the crash in XCode with the code sequence and the 
> > > line of clock_unset that crashes.
> > > 
> > >  
> > > <https://cloud.githubusercontent.com/assets/10989820/7903859/79938d6a-07e9-11e5-97d6-28fb59664a6e.png <https://cloud.githubusercontent.com/assets/10989820/7903859/79938d6a-07e9-11e5-97d6-28fb59664a6e.png>>
> > > I have done some printing and it crashes in this function:
> > > 
> > > void clock_unset(t_clock *x){
> > > if (x->c_settime >= 0){
> > > if (x == clock_setlist) clock_setlist = x->c_next;
> > > else{
> > > t_clock *x2 = clock_setlist;
> > > while (x2->c_next != x) x2 = x2->c_next;
> > > x2->c_next = x->c_next;
> > > }
> > > x->c_settime = -1;
> > > }
> > > }
> > > 
> > > On this line :
> > > 
> > > while (x2->c_next != x) x2 = x2->c_next;
> > > 
> > > With a printed value of : x2->c_next==NULL
> > > 
> > > Someone replied to me about the issue on Stack Overflow:
> > > "it seems that the clock that is being unset is not found in the list of 
> > > currently maintained clocks. however, this is probably one of the most 
> > > often used functions in Pd and afaict you only use bog standard built-in 
> > > objects, which should make the patch pretty failsafe. i'm guessing that 
> > > your problem is related to the new multi-instance features of Pd and you 
> > > simply hit a bug."
> > > 
> > > Could it be a bug? Thanks in advance.
> > > 
> > 
> 
> > _______________________________________________
> > Pd-list at lists.iem.at mailing list
> > UNSUBSCRIBE and account-management -> 
> > http://lists.puredata.info/listinfo/pd-list <http://lists.puredata.info/listinfo/pd-list>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20160128/10687e8c/attachment.html>


More information about the Pd-list mailing list