class Break_align_engraver : public Engraver
{
Item *align_;
- Protected_scm column_alist_;
+ SCM column_alist_;
Item *left_edge_;
void add_to_group (SCM,Item*);
protected:
- virtual void finalize ();
virtual void acknowledge_grob (Grob_info i);
virtual void stop_translation_timestep ();
+ virtual void derived_mark () const;
void add_column (SCM);
public:
}
-void
-Break_align_engraver::finalize ()
-{
- column_alist_ = SCM_EOL;
-}
-
void
Break_align_engraver::stop_translation_timestep ()
{
- for (SCM p = column_alist_; ly_c_pair_p (p); p = ly_cdr (p))
+ for (SCM p = column_alist_; scm_is_pair (p); p = scm_cdr (p))
{
- SCM pair = ly_car (p);
- add_column (ly_cdr (pair));
+ SCM pair = scm_car (p);
+ add_column (scm_cdr (pair));
}
column_alist_ = SCM_EOL;
align_ = 0;
}
+void
+Break_align_engraver::derived_mark () const
+{
+ scm_gc_mark (column_alist_);
+}
+
void
Break_align_engraver::acknowledge_grob (Grob_info inf)
{
return ;
SCM align_name = item->get_property ("break-align-symbol");
- if (!ly_c_symbol_p (align_name))
+ if (!scm_is_symbol (align_name))
return ;
if (!align_)
if (s != SCM_BOOL_F)
{
- Grob *e = unsmob_grob (ly_cdr (s));
+ Grob *e = unsmob_grob (scm_cdr (s));
group = dynamic_cast<Item*> (e);
}
else