X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic-iterator.cc;fp=lily%2Fmusic-iterator.cc;h=6ba70eb63d1e1e918add042de670b91eca6ec477;hb=652ed35a2013489d0a14fede6307cd2595abb2c4;hp=c076b7ad65867e9e9b3cdb9266ae0748c1dd7586;hpb=0ac07f31e0f95fc18e5916ce756b9c746af7cc58;p=lilypond.git diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc index c076b7ad65..6ba70eb63d 100644 --- a/lily/music-iterator.cc +++ b/lily/music-iterator.cc @@ -207,8 +207,11 @@ Music_iterator::mark_smob (SCM smob) Careful with GC, although we intend the following as pointers only, we _must_ mark them. */ - if (mus->get_outlet ()) - scm_gc_mark (mus->get_outlet ()->self_scm ()); + /* Use handle_ directly as get_outlet is a virtual function and we + need to protect the context until Music_iterator::quit is being + run. */ + if (mus->handle_.get_context ()) + scm_gc_mark (mus->handle_.get_context ()->self_scm ()); if (mus->music_) scm_gc_mark (mus->music_->self_scm ());