From 09572e4c45444e78bef63eb92254f292b9f046a9 Mon Sep 17 00:00:00 2001 From: Neil Puttock Date: Sun, 21 Feb 2010 17:32:23 +0000 Subject: [PATCH] Protect SCM members in Instrument_name_engraver/Instrument_switch_engraver. --- lily/instrument-name-engraver.cc | 9 +++++++++ lily/instrument-switch-engraver.cc | 10 +++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lily/instrument-name-engraver.cc b/lily/instrument-name-engraver.cc index c4b1100bd8..26a6fdd04d 100644 --- a/lily/instrument-name-engraver.cc +++ b/lily/instrument-name-engraver.cc @@ -46,8 +46,17 @@ protected: void start_spanner (); void consider_start_spanner (); void stop_spanner (); + + virtual void derived_mark () const; }; +void +Instrument_name_engraver::derived_mark () const +{ + scm_gc_mark (long_text_); + scm_gc_mark (short_text_); +} + Instrument_name_engraver::Instrument_name_engraver () { text_spanner_ = 0; diff --git a/lily/instrument-switch-engraver.cc b/lily/instrument-switch-engraver.cc index 717d06d677..8bd364646c 100644 --- a/lily/instrument-switch-engraver.cc +++ b/lily/instrument-switch-engraver.cc @@ -21,6 +21,7 @@ #include "engraver.hh" #include "item.hh" #include "text-interface.hh" + #include "translator.icc" @@ -34,8 +35,15 @@ protected: void stop_translation_time_step (); void process_music (); + + virtual void derived_mark () const; }; +void +Instrument_switch_engraver::derived_mark () const +{ + scm_gc_mark (cue_name_); +} Instrument_switch_engraver::Instrument_switch_engraver () { @@ -50,7 +58,7 @@ void Instrument_switch_engraver::process_music () { SCM cue_text = get_property ("instrumentCueName"); - + if (!scm_is_eq (cue_name_, cue_text)) { if (Text_interface::is_markup (cue_text)) -- 2.39.2