On Fri, Mar 05, 2010 at 04:26:34PM +0100, Mattias Kjellsson wrote: > Mattias Kjellsson wrote: > > Tom Rondeau wrote: > > > Sorry, I just saw that I wrote the last message off- list. > > Anyway, I have searched some more in the causes of this error. I took > the easy way out and looked in gr_buffer.h at line 127. and Changed this: > Approximately around lines 115->130 in gr_buffer.h > unsigned index_add (unsigned a, unsigned b){ > unsigned s = a + b; > /*if (s >= d_bufsize) > s -= d_bufsize;*/ > while(s>=d_bufsize){ > s-=d_bufsize; > } > assert (s < d_bufsize); > return s; > } > > I assume this is not the way to do this, but it gets rid of the error- > message... But since I have changed in the library to make this specific > block not produce an error... It just seems like doing things backwards. > But then again, this code- change assures that s<d_bufsize, but is it > always correct to do this? I guess not, but I'm not sure.
index_add is correct as originally written. I suspect that pfb_clock_sync_ccf has a problem in it. It looks like it only works if the number of output streams is 1 or 4, but not 2 or 3. It needs to override check_topology to enforce this. The two occurences of: if(output_items.size() > 2) { ... } should probably be changed to: if (output_items.size() == 4) It also looks like it's leaking d_diff_filters (should delete in the destructor). Eric _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio