From: Han-Wen Nienhuys Date: Wed, 4 Feb 2004 17:23:24 +0000 (+0000) Subject: * lily/simultaneous-music-iterator.cc: remove clone() and copy X-Git-Tag: release/2.1.23~103 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ef8093ad63c7a00a169cf88d71368b204dd65655;p=lilypond.git * lily/simultaneous-music-iterator.cc: remove clone() and copy constructor from Music_iterator. Changes throughout. * lily/include/music-iterator.hh (class Music_iterator): remove Music_iterator::skip and Music_iterator::get_pending_events from interface. Rename report_to -> get_outlet * lily/auto-change-iterator.cc: move contents from new-auto-change-iterator.cc from --- diff --git a/ChangeLog b/ChangeLog index fc5c9e92a2..ee2abefe42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ 2004-02-04 Han-Wen Nienhuys + * lily/simultaneous-music-iterator.cc: remove clone() and copy + constructor from Music_iterator. Changes throughout. + * lily/include/music-iterator.hh (class Music_iterator): remove Music_iterator::skip and Music_iterator::get_pending_events from interface. Rename report_to -> get_outlet diff --git a/Documentation/topdocs/NEWS.texi b/Documentation/topdocs/NEWS.texi index 6a96969133..d5f708864b 100644 --- a/Documentation/topdocs/NEWS.texi +++ b/Documentation/topdocs/NEWS.texi @@ -43,8 +43,8 @@ PostScript file output is disallowed, and lilypond-bin is invoked with @code{--safe-mode}, the user's Guile expressions are evaluated in a safe environment and file inclusion is not allowed. -Be warned that a DOS attack using Guile, @TeX{} or PostScript is -rather easy. +Warning: this does protect against denial-of-service attacks using +Guile, @TeX{} or PostScript. (This feature is still experimental.) diff --git a/lily/apply-context-iterator.cc b/lily/apply-context-iterator.cc index feb3a83460..1da88fc09c 100644 --- a/lily/apply-context-iterator.cc +++ b/lily/apply-context-iterator.cc @@ -8,7 +8,6 @@ class Apply_context_iterator : public Simple_music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); protected: virtual void process (Moment); diff --git a/lily/auto-change-iterator.cc b/lily/auto-change-iterator.cc index f5bb1bbe39..9eb0709982 100644 --- a/lily/auto-change-iterator.cc +++ b/lily/auto-change-iterator.cc @@ -16,7 +16,6 @@ class Auto_change_iterator : public Music_wrapper_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Auto_change_iterator (); diff --git a/lily/bar-check-iterator.cc b/lily/bar-check-iterator.cc index 380edbf448..a0348f267d 100644 --- a/lily/bar-check-iterator.cc +++ b/lily/bar-check-iterator.cc @@ -19,7 +19,6 @@ class Bar_check_iterator : Simple_music_iterator { public: - VIRTUAL_COPY_CONS(Bar_check_iterator); virtual void process (Moment); Bar_check_iterator( ); DECLARE_SCHEME_CALLBACK(constructor, ()); diff --git a/lily/chord-tremolo-iterator.cc b/lily/chord-tremolo-iterator.cc index 3de2ba5ba3..670ce66ffd 100644 --- a/lily/chord-tremolo-iterator.cc +++ b/lily/chord-tremolo-iterator.cc @@ -31,18 +31,6 @@ Chord_tremolo_iterator::Chord_tremolo_iterator () child_iter_ = 0; } -Chord_tremolo_iterator::Chord_tremolo_iterator (Chord_tremolo_iterator const &src) - : Music_iterator (src) -{ - factor_ = src.factor_; - child_iter_ = 0; - if (src.child_iter_) - { - child_iter_ = src.child_iter_->clone (); - scm_gc_unprotect_object (child_iter_->self_scm()); - } -} - void Chord_tremolo_iterator::do_quit() { diff --git a/lily/context-specced-music-iterator.cc b/lily/context-specced-music-iterator.cc index 801f1b20dd..fd6bcf3a02 100644 --- a/lily/context-specced-music-iterator.cc +++ b/lily/context-specced-music-iterator.cc @@ -14,7 +14,6 @@ class Context_specced_music_iterator : public Music_wrapper_iterator { public: - VIRTUAL_COPY_CONS(Music_iterator); DECLARE_SCHEME_CALLBACK(constructor,()); virtual void construct_children (); }; diff --git a/lily/event-chord-iterator.cc b/lily/event-chord-iterator.cc index d45168d573..24b6ef5ad1 100644 --- a/lily/event-chord-iterator.cc +++ b/lily/event-chord-iterator.cc @@ -16,11 +16,6 @@ Event_chord_iterator::Event_chord_iterator () { } -Event_chord_iterator::Event_chord_iterator (Event_chord_iterator const &src) - : Simple_music_iterator (src) -{ -} - Translator_group* Event_chord_iterator::get_req_translator () { @@ -47,7 +42,7 @@ Event_chord_iterator::get_elt () const void -Event_chord_iterator::process (Moment ) +Event_chord_iterator::process (Moment m) { if (last_processed_mom_ < Moment (0)) { @@ -61,6 +56,7 @@ Event_chord_iterator::process (Moment ) mus->origin ()->warning (_f ("Junking event: `%s'", mus->name())); } } + Simple_music_iterator::process (m); } IMPLEMENT_CTOR_CALLBACK (Event_chord_iterator); diff --git a/lily/folded-repeat-iterator.cc b/lily/folded-repeat-iterator.cc index 9465184b6b..0a7decd4d8 100644 --- a/lily/folded-repeat-iterator.cc +++ b/lily/folded-repeat-iterator.cc @@ -32,24 +32,6 @@ Folded_repeat_iterator::do_quit() if (alternative_iter_)alternative_iter_->quit(); } -Folded_repeat_iterator::Folded_repeat_iterator (Folded_repeat_iterator const &src) - : Music_iterator (src) -{ - main_iter_ = 0; - alternative_iter_ = 0; - main_length_mom_ = src.main_length_mom_; - - if (src.alternative_iter_) - alternative_iter_ = src.alternative_iter_->clone (); - if (src.main_iter_) - main_iter_ = src.main_iter_->clone (); - - if (main_iter_) - scm_gc_unprotect_object (main_iter_->self_scm()); - if (alternative_iter_) - scm_gc_unprotect_object (alternative_iter_->self_scm()); -} - Moment Folded_repeat_iterator::pending_moment () const { diff --git a/lily/include/change-iterator.hh b/lily/include/change-iterator.hh index b760501f30..a3f5456ee3 100644 --- a/lily/include/change-iterator.hh +++ b/lily/include/change-iterator.hh @@ -16,7 +16,6 @@ class Change_iterator : public Simple_music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); /* constructor is public */ virtual void process (Moment); DECLARE_SCHEME_CALLBACK(constructor, ()); diff --git a/lily/include/chord-tremolo-iterator.hh b/lily/include/chord-tremolo-iterator.hh index 17ebc1be82..9809841f78 100644 --- a/lily/include/chord-tremolo-iterator.hh +++ b/lily/include/chord-tremolo-iterator.hh @@ -15,7 +15,6 @@ class Chord_tremolo_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Chord_tremolo_iterator (); Chord_tremolo_iterator (Chord_tremolo_iterator const & ); diff --git a/lily/include/event-chord-iterator.hh b/lily/include/event-chord-iterator.hh index e3c5fa0d09..b985f45db3 100644 --- a/lily/include/event-chord-iterator.hh +++ b/lily/include/event-chord-iterator.hh @@ -30,7 +30,6 @@ class Event_chord_iterator : public Simple_music_iterator enum { NONE_DONE, START_DONE, END_DONE } status_; public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Event_chord_iterator (); Event_chord_iterator (Event_chord_iterator const&); diff --git a/lily/include/folded-repeat-iterator.hh b/lily/include/folded-repeat-iterator.hh index 662243802b..a9ea0b841d 100644 --- a/lily/include/folded-repeat-iterator.hh +++ b/lily/include/folded-repeat-iterator.hh @@ -19,7 +19,6 @@ class Folded_repeat_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Folded_repeat_iterator (Folded_repeat_iterator const &src); diff --git a/lily/include/grace-iterator.hh b/lily/include/grace-iterator.hh index 96ce38cb38..af5c14c535 100644 --- a/lily/include/grace-iterator.hh +++ b/lily/include/grace-iterator.hh @@ -15,7 +15,6 @@ class Grace_iterator : public Music_wrapper_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); virtual void process (Moment); DECLARE_SCHEME_CALLBACK(constructor, ()); Moment pending_moment () const; diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh index db99254956..b86050dc0f 100644 --- a/lily/include/music-iterator.hh +++ b/lily/include/music-iterator.hh @@ -58,13 +58,12 @@ protected: Moment start_mom_; DECLARE_SMOBS (Music_iterator,dummy); + Music_iterator (Music_iterator const&); public: - VIRTUAL_COPY_CONS (Music_iterator); Moment music_get_length () const; Moment music_start_mom () const; Music_iterator (); - Music_iterator (Music_iterator const&); /** Do the reporting. Will try MUSIC_L_ in its own translator first, diff --git a/lily/include/music-wrapper-iterator.hh b/lily/include/music-wrapper-iterator.hh index a9baaf4de8..c34d4db74b 100644 --- a/lily/include/music-wrapper-iterator.hh +++ b/lily/include/music-wrapper-iterator.hh @@ -21,10 +21,8 @@ class Music_wrapper_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Music_wrapper_iterator (); - Music_wrapper_iterator (Music_wrapper_iterator const&); virtual void derived_substitute (Translator_group*f, Translator_group*t) ; @@ -33,7 +31,6 @@ public: virtual Moment pending_moment () const; virtual void do_quit(); virtual bool ok () const; - virtual SCM get_pending_events (Moment)const; virtual bool run_always () const; protected: virtual void process (Moment); diff --git a/lily/include/output-property-music-iterator.hh b/lily/include/output-property-music-iterator.hh index c6d3a6262c..82ac7ed144 100644 --- a/lily/include/output-property-music-iterator.hh +++ b/lily/include/output-property-music-iterator.hh @@ -14,7 +14,6 @@ class Output_property_music_iterator : public Simple_music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); /* construction */ protected: diff --git a/lily/include/percent-repeat-iterator.hh b/lily/include/percent-repeat-iterator.hh index b7699ec816..ae79d0a194 100644 --- a/lily/include/percent-repeat-iterator.hh +++ b/lily/include/percent-repeat-iterator.hh @@ -15,10 +15,8 @@ class Percent_repeat_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Percent_repeat_iterator (); - Percent_repeat_iterator (Percent_repeat_iterator const & ); protected: virtual void derived_substitute (Translator_group*f, Translator_group*t) ; diff --git a/lily/include/property-iterator.hh b/lily/include/property-iterator.hh index 52048ac595..666b71b06b 100644 --- a/lily/include/property-iterator.hh +++ b/lily/include/property-iterator.hh @@ -21,7 +21,6 @@ class Property_iterator : public Simple_music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); DECLARE_SCHEME_CALLBACK(once_finalization, (SCM, SCM )); @@ -39,7 +38,6 @@ protected: class Property_unset_iterator : public Simple_music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); protected: virtual void process (Moment); @@ -48,7 +46,6 @@ protected: class Push_property_iterator : public Simple_music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); DECLARE_SCHEME_CALLBACK(once_finalization, (SCM, SCM)); protected: @@ -60,7 +57,6 @@ class Pop_property_iterator : public Simple_music_iterator { public: DECLARE_SCHEME_CALLBACK(constructor, ()); - VIRTUAL_COPY_CONS (Music_iterator); protected: virtual void process (Moment); }; diff --git a/lily/include/sequential-iterator.hh b/lily/include/sequential-iterator.hh index 2cef81e96e..8674607f41 100644 --- a/lily/include/sequential-iterator.hh +++ b/lily/include/sequential-iterator.hh @@ -53,7 +53,6 @@ class Sequential_iterator : public Music_iterator public: Grace_fixup * grace_fixups_; - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Sequential_iterator (); Sequential_iterator (Sequential_iterator const&); diff --git a/lily/include/sequential-music-iterator.hh b/lily/include/sequential-music-iterator.hh index 3229d02b2b..c46dcffea2 100644 --- a/lily/include/sequential-music-iterator.hh +++ b/lily/include/sequential-music-iterator.hh @@ -18,7 +18,6 @@ class Sequential_music_iterator : public Sequential_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); private: virtual SCM get_music_list()const; diff --git a/lily/include/simple-music-iterator.hh b/lily/include/simple-music-iterator.hh index 88a1fa1b79..8471a4c04d 100644 --- a/lily/include/simple-music-iterator.hh +++ b/lily/include/simple-music-iterator.hh @@ -22,10 +22,8 @@ protected: Moment last_processed_mom_; public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); Simple_music_iterator (); - Simple_music_iterator (Simple_music_iterator const &); virtual void process (Moment); virtual bool ok ()const; virtual Moment pending_moment ()const; diff --git a/lily/include/simultaneous-music-iterator.hh b/lily/include/simultaneous-music-iterator.hh index f602a823a3..10b392d4c5 100644 --- a/lily/include/simultaneous-music-iterator.hh +++ b/lily/include/simultaneous-music-iterator.hh @@ -15,7 +15,6 @@ class Simultaneous_music_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); Simultaneous_music_iterator (); Simultaneous_music_iterator (Simultaneous_music_iterator const&); virtual void derived_substitute (Translator_group*f, Translator_group*t) ; diff --git a/lily/include/time-scaled-music-iterator.hh b/lily/include/time-scaled-music-iterator.hh index 607242b826..8914ead573 100644 --- a/lily/include/time-scaled-music-iterator.hh +++ b/lily/include/time-scaled-music-iterator.hh @@ -15,7 +15,6 @@ class Time_scaled_music_iterator : public Music_wrapper_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); DECLARE_SCHEME_CALLBACK(constructor, ()); /* construction */ protected: diff --git a/lily/lyric-combine-music-iterator.cc b/lily/lyric-combine-music-iterator.cc index 4124cfedb3..f0abc783c3 100644 --- a/lily/lyric-combine-music-iterator.cc +++ b/lily/lyric-combine-music-iterator.cc @@ -17,7 +17,6 @@ class Lyric_combine_music_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); Lyric_combine_music_iterator (); Lyric_combine_music_iterator (Lyric_combine_music_iterator const&src); DECLARE_SCHEME_CALLBACK(constructor, ()); @@ -183,23 +182,6 @@ Lyric_combine_music_iterator::do_quit () lyric_iter_->quit(); } -Lyric_combine_music_iterator::Lyric_combine_music_iterator (Lyric_combine_music_iterator const & src) - : Music_iterator (src) -{ - lyric_iter_ = 0; - music_iter_ = 0; - - if (src.lyric_iter_) - lyric_iter_ = src.lyric_iter_->clone (); - if (src.music_iter_) - music_iter_ = src.music_iter_->clone (); - - if (lyric_iter_) - scm_gc_unprotect_object (lyric_iter_->self_scm()); - if (music_iter_) - scm_gc_unprotect_object (music_iter_->self_scm()); -} - Music_iterator* Lyric_combine_music_iterator::try_music_in_children (Music *m) const { diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc index 45d2f374dc..c2b6c0dda3 100644 --- a/lily/music-iterator.cc +++ b/lily/music-iterator.cc @@ -28,11 +28,7 @@ Music_iterator::Music_iterator () Music_iterator::Music_iterator (Music_iterator const& src) { - handle_ = *src.handle_.clone (); - music_ = src.music_; - music_length_ = src.music_length_; - start_mom_ = src.start_mom_; - smobify_self (); + assert (false); } Music_iterator::~Music_iterator () diff --git a/lily/music-wrapper-iterator.cc b/lily/music-wrapper-iterator.cc index 4d794033d8..6dfe61c173 100644 --- a/lily/music-wrapper-iterator.cc +++ b/lily/music-wrapper-iterator.cc @@ -15,17 +15,6 @@ Music_wrapper_iterator::Music_wrapper_iterator () child_iter_ =0; } -Music_wrapper_iterator::Music_wrapper_iterator (Music_wrapper_iterator const &src) - : Music_iterator (src) -{ - child_iter_ = 0; - if (src.child_iter_) - { - child_iter_ = src.child_iter_->clone () ; - scm_gc_unprotect_object (child_iter_->self_scm()); - } -} - void Music_wrapper_iterator::do_quit() { diff --git a/lily/new-lyric-combine-music-iterator.cc b/lily/new-lyric-combine-music-iterator.cc index 3442efb74b..1b3a14a84a 100644 --- a/lily/new-lyric-combine-music-iterator.cc +++ b/lily/new-lyric-combine-music-iterator.cc @@ -17,7 +17,6 @@ source file of the GNU LilyPond music typesetter class New_lyric_combine_music_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); New_lyric_combine_music_iterator (); New_lyric_combine_music_iterator (New_lyric_combine_music_iterator const&src); DECLARE_SCHEME_CALLBACK(constructor, ()); @@ -235,23 +234,6 @@ New_lyric_combine_music_iterator::do_quit () lyric_iter_->quit(); } -New_lyric_combine_music_iterator::New_lyric_combine_music_iterator (New_lyric_combine_music_iterator const & src) - : Music_iterator (src) -{ - lyric_iter_ = 0; - - if (src.lyric_iter_) - lyric_iter_ = src.lyric_iter_->clone (); - - if (lyric_iter_) - scm_gc_unprotect_object (lyric_iter_->self_scm()); - - music_context_ = src.music_context_; - lyric_iter_ = src.lyric_iter_; - - - assert (false); // shouldn't copy, really. -} Music_iterator* diff --git a/lily/new-part-combine-iterator.cc b/lily/new-part-combine-iterator.cc index 05b837d1c2..e72acf4b24 100644 --- a/lily/new-part-combine-iterator.cc +++ b/lily/new-part-combine-iterator.cc @@ -17,7 +17,6 @@ class New_pc_iterator : public Music_iterator { public: - VIRTUAL_COPY_CONS (Music_iterator); New_pc_iterator (); DECLARE_SCHEME_CALLBACK(constructor, ()); @@ -104,24 +103,7 @@ New_pc_iterator::do_quit () shared_.set_translator (0); } -New_pc_iterator::New_pc_iterator (New_pc_iterator const &src) - : Music_iterator (src) -{ - first_iter_ = 0; - second_iter_ = 0; - - if(src.first_iter_) - first_iter_ = src.first_iter_->clone (); - if (src.second_iter_) - second_iter_ = src.second_iter_->clone (); - split_list_ = src.split_list_; - - if (first_iter_) - scm_gc_unprotect_object (first_iter_->self_scm()); - if (second_iter_) - scm_gc_unprotect_object (second_iter_->self_scm()); -} Moment New_pc_iterator::pending_moment () const diff --git a/lily/percent-repeat-iterator.cc b/lily/percent-repeat-iterator.cc index 5f25bcf6c5..9648572913 100644 --- a/lily/percent-repeat-iterator.cc +++ b/lily/percent-repeat-iterator.cc @@ -25,18 +25,6 @@ Percent_repeat_iterator::do_quit() if (child_iter_) child_iter_->quit(); } -Percent_repeat_iterator::Percent_repeat_iterator (Percent_repeat_iterator const & p) - : Music_iterator (p) -{ - child_iter_ = 0; - finish_mom_ = p.finish_mom_ ; - - if (p.child_iter_) - { - child_iter_ = p.child_iter_->clone (); - scm_gc_unprotect_object (child_iter_->self_scm()); - } -} bool Percent_repeat_iterator::ok () const diff --git a/lily/property-iterator.cc b/lily/property-iterator.cc index 11d0f3212e..c52afecd9f 100644 --- a/lily/property-iterator.cc +++ b/lily/property-iterator.cc @@ -158,7 +158,7 @@ Pop_property_iterator::process (Moment m) { SCM eprop = get_music ()->get_mus_property ("grob-property"); get_outlet ()->execute_pushpop_property (sym, eprop, SCM_UNDEFINED); - } + } Simple_music_iterator::process (m); } diff --git a/lily/sequential-iterator.cc b/lily/sequential-iterator.cc index 2b41b1e016..b273ed5e68 100644 --- a/lily/sequential-iterator.cc +++ b/lily/sequential-iterator.cc @@ -59,21 +59,7 @@ Sequential_iterator::do_quit () } -Sequential_iterator::Sequential_iterator (Sequential_iterator const &src) - : Music_iterator (src) -{ - grace_fixups_ = copy_grace_fixups (src.grace_fixups_); - cursor_ = src.cursor_; - list_ = src.cursor_; - here_mom_ = src.here_mom_; - iter_ = 0; - if (src.iter_) - { - iter_ = src.iter_->clone (); - scm_gc_unprotect_object (iter_->self_scm()); - } -} void Sequential_iterator::derived_mark ()const diff --git a/lily/simple-music-iterator.cc b/lily/simple-music-iterator.cc index 5ea6270a5a..dabaa4f893 100644 --- a/lily/simple-music-iterator.cc +++ b/lily/simple-music-iterator.cc @@ -17,12 +17,6 @@ Simple_music_iterator::Simple_music_iterator () last_processed_mom_ = -1; } -Simple_music_iterator::Simple_music_iterator (Simple_music_iterator const &src) - : Music_iterator (src) -{ - last_processed_mom_ = src.last_processed_mom_; -} - bool Simple_music_iterator::ok ()const { @@ -48,12 +42,14 @@ Simple_music_iterator::pending_moment ()const void -Simple_music_iterator::process (Moment ) +Simple_music_iterator::process (Moment m) { /* don't do try_music (), since it would make the function useless for - base classes */ + base classes + */ + last_processed_mom_ = m; } IMPLEMENT_CTOR_CALLBACK (Simple_music_iterator); diff --git a/lily/simultaneous-music-iterator.cc b/lily/simultaneous-music-iterator.cc index 347837275b..c5a483cb94 100644 --- a/lily/simultaneous-music-iterator.cc +++ b/lily/simultaneous-music-iterator.cc @@ -19,27 +19,6 @@ Simultaneous_music_iterator::Simultaneous_music_iterator () children_list_ = SCM_EOL; } -Simultaneous_music_iterator::Simultaneous_music_iterator (Simultaneous_music_iterator const& src) - : Music_iterator (src) -{ - separate_contexts_b_ - = src.separate_contexts_b_; - children_list_ = SCM_EOL; - - SCM children_list = SCM_EOL; - SCM *tail = &children_list; - for (SCM s = src.children_list_; gh_pair_p (s); s = gh_cdr(s)) - { - Music_iterator *i = unsmob_iterator (gh_car (s)); - SCM cl = i->clone ()->self_scm(); - *tail = scm_cons (cl, *tail); - tail = SCM_CDRLOC (*tail); - scm_gc_unprotect_object (cl); - } - - children_list_ = children_list; - scm_remember_upto_here_1 (children_list); -} void Simultaneous_music_iterator::derived_mark()const diff --git a/lily/unfolded-repeat-iterator.cc b/lily/unfolded-repeat-iterator.cc index fac94cece6..b13911340c 100644 --- a/lily/unfolded-repeat-iterator.cc +++ b/lily/unfolded-repeat-iterator.cc @@ -16,7 +16,6 @@ class Unfolded_repeat_iterator : public Sequential_iterator { public: DECLARE_SCHEME_CALLBACK(constructor, ()); - VIRTUAL_COPY_CONS (Music_iterator); protected: virtual SCM get_music_list () const; }; @@ -57,7 +56,6 @@ class Volta_repeat_iterator : public Sequential_iterator { public: DECLARE_SCHEME_CALLBACK(constructor, ()); - VIRTUAL_COPY_CONS (Music_iterator); Volta_repeat_iterator(); void add_repeat_command (SCM);