[LAU] Ardour: exporting woes

Fons Adriaensen fons at linuxaudio.org
Wed Mar 30 21:18:48 UTC 2016


On Wed, Mar 30, 2016 at 03:47:08PM -0400, Gene Heskett wrote:

> Phew!  I'm with you 100% Fons. Stay upwind, way upwind of code like this.

Normally I do. But this was 1) something I needed, and 2) a challenge.
 
> For starters, where the heck are the closing } for the two else clauses 
> above?

They are there, somewhere....

Another example. This is what I wrote (a new function):

----------
/* Delete a direct dependency of client B on client A.
 */
static void
rem_depends (jack_client_internal_t *A, jack_client_internal_t *B)
{
        jack_feedcounts_t *X, *Y;

        for (X = 0, Y = A->feedlist; Y; X = Y, Y = Y->next)
        {
                if (Y->client == B)
                {
                        if (X) X->next = Y->next;
                        else A->feedlist = Y->next;
                        B->depcount--;
                        free (Y);
                        return;
                }
        }
}
----------

And this is what was committed:

----------
/* Delete a direct dependency of client B on client A.
 */
static void
rem_depends (jack_client_internal_t *A, jack_client_internal_t *B)
{
        jack_feedcounts_t *X, *Y;

        for (X = 0, Y = A->feedlist; Y; X = Y, Y = Y->next) {
                if (Y->client == B) {
                        if (X) {
                                X->next = Y->next;
                        } else {                      A->feedlist = Y->next; }
                        B->depcount--;
                        free (Y);
                        return;
                }
        }
}
----------

Ciao,

-- 
FA

A world of exhaustive, reliable metadata would be an utopia.
It's also a pipe-dream, founded on self-delusion, nerd hubris
and hysterically inflated market opportunities. (Cory Doctorow)



More information about the Linux-audio-user mailing list