The issue here is that Stem::set-beaming may set one of the beaming
segment lists to #f instead of an empty list, and not all users of
"beaming" (in this case where_are_the_whole_beams) were prepared to
deal with this.
for (SCM s = scm_car (right_beaming); scm_is_pair (s); s = scm_cdr (s))
{
int k = -right_dir * scm_to_int (scm_car (s)) + i;
- if (scm_is_true (scm_c_memq (scm_from_int (k), left_beaming)))
+ if (scm_is_true (ly_memv (scm_from_int (k), left_beaming)))
count++;
}
for (SCM s = scm_car (beaming); scm_is_pair (s); s = scm_cdr (s))
{
- if (scm_is_true (scm_c_memq (scm_car (s), scm_cdr (beaming))))
+ if (scm_is_true (ly_memv (scm_car (s), scm_cdr (beaming))))
l.add_point (scm_to_int (scm_car (s)));
}
SCM lst = index_get_cell (pair, d);
- int len = scm_ilength (lst);
+ int len = scm_ilength (lst); // -1 for dotted lists!
return max (len, 0);
}
for (SCM s = scm_car (beaming); scm_is_pair (s); s = scm_cdr (s))
{
- if (scm_is_true (scm_c_memq (scm_car (s), scm_cdr (beaming))))
+ if (scm_is_true (ly_memv (scm_car (s), scm_cdr (beaming))))
++count;
}