[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