From: Reinhold Kainhofer Date: Thu, 8 Oct 2009 11:16:08 +0000 (+0200) Subject: More cleanly factor out the bass figure group object X-Git-Tag: release/2.13.14-1~73 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=4c0c143eb06be7067149e943783ee98ada5be761;p=lilypond.git More cleanly factor out the bass figure group object --- diff --git a/lily/figured-bass-engraver.cc b/lily/figured-bass-engraver.cc index 2e2c519f7a..0d6841f8ab 100644 --- a/lily/figured-bass-engraver.cc +++ b/lily/figured-bass-engraver.cc @@ -62,23 +62,32 @@ struct Figure_group group_ = 0; current_event_ = 0; } + /* Mark the members of the struct as used for the GUILE Garbage Collection */ + void gc_mark () const + { + scm_gc_mark (number_); + scm_gc_mark (alteration_); + scm_gc_mark (augmented_); + scm_gc_mark (diminished_); + scm_gc_mark (augmented_slash_); + scm_gc_mark (text_); + } + bool group_is_equal_to (Stream_event *evt) const + { + return + ly_is_equal (number_, evt->get_property ("figure")) + && ly_is_equal (alteration_, evt->get_property ("alteration")) + && ly_is_equal (augmented_, evt->get_property ("augmented")) + && ly_is_equal (diminished_, evt->get_property ("diminished")) + && ly_is_equal (augmented_slash_, evt->get_property ("augmented-slash")) + && ly_is_equal (text_, evt->get_property ("text")); + } bool is_continuation () const { return current_event_ && !force_no_continuation_ - && ly_is_equal (number_, - current_event_->get_property ("figure")) - && ly_is_equal (alteration_, - current_event_->get_property ("alteration")) - && ly_is_equal (augmented_, - current_event_->get_property ("augmented")) - && ly_is_equal (diminished_, - current_event_->get_property ("diminished")) - && ly_is_equal (augmented_slash_, - current_event_->get_property ("augmented-slash")) - && ly_is_equal (text_, - current_event_->get_property ("text")); + && group_is_equal_to (current_event_); } }; @@ -116,12 +125,7 @@ Figured_bass_engraver::derived_mark () const { for (vsize i = 0; i < groups_.size (); i++) { - scm_gc_mark (groups_[i].number_); - scm_gc_mark (groups_[i].alteration_); - scm_gc_mark (groups_[i].augmented_); - scm_gc_mark (groups_[i].diminished_); - scm_gc_mark (groups_[i].augmented_slash_); - scm_gc_mark (groups_[i].text_); + groups_[i].gc_mark (); } }