Dan Eble <[email protected]> writes:

> Part_combine_iterator::split_list_ is a SCM.  As I read the comments
> in smobs.hh, this means that Part_combine_iterator::derived_mark()
> should call scm_gc_mark (split_list_).  Am I right?

Partly.

split_list_ is initialized with

    split_list_ = get_music ()->get_property ("split-list");

and the music underlying get_music is protected by
Music_iterator::mark_smob.  As opposed to grob properties, music
properties don't accept callbacks, so the result of get_property is
never constructed on-the-fly and is safely protected via music_.
split_list_ is not changed in any manner where it would gain parts
unprotected via music_.

So the current code will not trigger any runtime errors.  Instead it
triggers a wild goose chase through the code at lecture time.

Arguably that counts as a bug as well, at least if the rationale is not
readily explained in a comment so that the wild goose chase is stopped
early.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to