[Cs-dev] David's bug
Date | 2006-12-11 09:30 |
From | jpff |
Subject | [Cs-dev] David's bug |
I have this fix. In Top/csound.c there is a function kperf that loops over instruments, using a local variable ip. That variable is read from the csound->actanchor.nxtact location at the start of the cycle, so any instrument deactivated in instr1 will still be run in that cycle. If however the look re-read the chain after each performance call it would not do this overrun. eg (line 182 of Top/csound.c) while (ip != NULL) { /* for each instr active: */ INSDS *nxt = ip->nxtact; csound->pds = (OPDS*) ip; while ((csound->pds = csound->pds->nxtp) != NULL) { (*csound->pds->opadr)(csound, csound->pds); /* run each opcode */ } ip = ip->nxtact; /* ***** was ip = nxt ****** */ } This is not my code so I am uncertain about it. I have tried it and it certainly fixes the problem. Am I right here or am I off in hyper space? ==John ffitch ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2006-12-11 10:29 |
From | David Akbari |
Subject | Re: [Cs-dev] David's bug |
I can confirm that this does indeed fix the error that had been occuring! Thanks to all who contributed to this conclusion; however now the question to ask is: will the change to line 1099 in Top/csound.c > ip = ip->nxtact; /* ***** was ip = nxt ****** */ Introduce any other types of backwards compatibility issues in other situations? The compiler says Top/csound.c:597: warning: missing braces around initializer Top/csound.c:597: warning: (near initialization for `cenviron_.SVrecvbuf.data') Top/csound.c: In function `kperf': Top/csound.c:1094: warning: unused variable `nxt' Anyway, I can confirm that it fixes the issue on GNU/Linux and Mac OSX. As long as it doesn't conflict with other .csd files, I would be very happy if this change made it into the CVS. -David On Dec 11, 2006, at 3:30 AM, jpff wrote: > I have this fix. In Top/csound.c there is a function kperf that loops > over instruments, using a local variable ip. That variable is read > from the csound->actanchor.nxtact location at the start of the cycle, > so any instrument deactivated in instr1 will still be run in that > cycle. > If however the look re-read the chain after each performance call it > would not do this overrun. > > eg (line 182 of Top/csound.c) > > while (ip != NULL) { /* for each instr active: */ > INSDS *nxt = ip->nxtact; > csound->pds = (OPDS*) ip; > while ((csound->pds = csound->pds->nxtp) != NULL) { > (*csound->pds->opadr)(csound, csound->pds); /* run each opcode > */ > } > ip = ip->nxtact; /* ***** was ip = nxt ****** */ > } > > This is not my code so I am uncertain about it. I have tried it and > it certainly fixes the problem. > > Am I right here or am I off in hyper space? > > ==John ffitch ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
Date | 2006-12-11 11:37 |
From | Victor Lazzarini |
Subject | Re: [Cs-dev] David's bug |
I'd say this at least is just a matter of code tidying up. At 10:29 11/12/2006, you wrote: >The compiler says > >Top/csound.c:597: warning: missing braces around initializer >Top/csound.c:597: warning: (near initialization for >`cenviron_.SVrecvbuf.data') >Top/csound.c: In function `kperf': >Top/csound.c:1094: warning: unused variable `nxt' Victor Lazzarini Music Technology Laboratory Music Department National University of Ireland, Maynooth ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |