[LAU] reporting a bug: getting a backtrace

Fons Adriaensen fons at linuxaudio.org
Sat Jan 21 10:44:21 UTC 2012


On Sat, Jan 21, 2012 at 12:11:10AM +0000, Alan Russell wrote:

> I got the same bug trying to patch a feedback loop on mine. It doesn't
> seem to matter what modules are in the feedback line, even a gain
> object set to 0 (-infinity dB, whatever). As soon as you close the
> loop, the program exits.

In module.cpp change

float **Module::getData(int index)
{
    if (!cycleReady) {
        generateCycle();
        cycleReady = true;
    }
    return data[index];
}

to

float **Module::getData(int index)
{
    if (!cycleReady) {
        cycleReady = true;
        generateCycle();
    }
    return data[index];
}

and recompile. If you have recent compilation tools you may
have to add -ldl to the list of libraries in Makefile.

The order of these two statements was apparently changed, 
but it *does* matter. If there is a loop, getData() for one
particular module will call itself before generateCycle()
returns. If that happens generateCycle() must not be called
again.

Ciao,

-- 
FA

Vor uns liegt ein weites Tal, die Sonne scheint - ein Glitzerstrahl.



More information about the Linux-audio-user mailing list