void process_music ();
virtual void finalize ();
+ virtual void derived_mark () const;
public:
TRANSLATOR_DECLARATIONS (Phrasing_slur_engraver);
{
}
+void
+Phrasing_slur_engraver::derived_mark () const
+{
+ for (vsize i=start_events_.size(); i--;)
+ scm_gc_mark (start_events_[i]->self_scm ());
+ for (vsize i=stop_events_.size(); i--;)
+ scm_gc_mark (stop_events_[i]->self_scm ());
+}
+
IMPLEMENT_TRANSLATOR_LISTENER (Phrasing_slur_engraver, phrasing_slur);
void
Phrasing_slur_engraver::listen_phrasing_slur (Stream_event *ev)
slurs_[i]->warning (_ ("unterminated phrasing slur"));
slurs_[i]->suicide ();
}
+ slurs_.clear ();
}
void
void process_music ();
virtual void finalize ();
+ virtual void derived_mark () const;
public:
TRANSLATOR_DECLARATIONS (Slur_engraver);
{
}
+void
+Slur_engraver::derived_mark () const
+{
+ for (vsize i=start_events_.size(); i--;)
+ scm_gc_mark (start_events_[i]->self_scm ());
+ for (vsize i=stop_events_.size(); i--;)
+ scm_gc_mark (stop_events_[i]->self_scm ());
+}
+
IMPLEMENT_TRANSLATOR_LISTENER (Slur_engraver, slur);
void
Slur_engraver::listen_slur (Stream_event *ev)
slurs_[i]->warning (_ ("unterminated slur"));
slurs_[i]->suicide ();
}
+ slurs_.clear ();
}
void
DECLARE_TRANSLATOR_LISTENER (staff_span);
virtual void finalize ();
void process_music ();
+ virtual void derived_mark () const;
};
+void
+Staff_symbol_engraver::derived_mark () const
+{
+ for (LEFT_and_RIGHT (d)) {
+ if (span_events_[d])
+ scm_gc_mark (span_events_[d]->self_scm ());
+ }
+}
+
Staff_symbol_engraver::~Staff_symbol_engraver ()
{
if (span_)