lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Part_combine_iterator::derived_mark()


From: David Kastrup
Subject: Re: Part_combine_iterator::derived_mark()
Date: Sat, 30 May 2015 15:37:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Dan Eble <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]