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)