From: David Kastrup Date: Fri, 27 Jan 2017 12:27:03 +0000 (+0100) Subject: Issue 1375/1: Let Translator constructor take a Context argument X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=6d1c5d25389afa6dbbfb4722df3732e764cbbf2e;p=lilypond.git Issue 1375/1: Let Translator constructor take a Context argument This is the first step towards constructing rather than cloning translators when creating contexts. On its own, it does not make sense, but the change is large and mostly mechanical, so keeping it separate from the actually difficult parts makes sense. --- diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc index 95ebf7caa9..d8cc647bc0 100644 --- a/lily/accidental-engraver.cc +++ b/lily/accidental-engraver.cc @@ -103,7 +103,8 @@ public: in grobs should always store ly_deep_copy ()s of those. */ -Accidental_engraver::Accidental_engraver () +Accidental_engraver::Accidental_engraver (Context *c) + : Engraver (c) { accidental_placement_ = 0; last_keysig_ = SCM_EOL; diff --git a/lily/ambitus-engraver.cc b/lily/ambitus-engraver.cc index 665c83a4cc..50cebbbf99 100644 --- a/lily/ambitus-engraver.cc +++ b/lily/ambitus-engraver.cc @@ -88,7 +88,8 @@ Ambitus_engraver::create_ambitus () is_typeset_ = false; } -Ambitus_engraver::Ambitus_engraver () +Ambitus_engraver::Ambitus_engraver (Context *c) + : Engraver (c) { ambitus_ = 0; heads_.set (0, 0); diff --git a/lily/arpeggio-engraver.cc b/lily/arpeggio-engraver.cc index d308a43068..e0face3d7a 100644 --- a/lily/arpeggio-engraver.cc +++ b/lily/arpeggio-engraver.cc @@ -49,7 +49,8 @@ private: Stream_event *arpeggio_event_; }; -Arpeggio_engraver::Arpeggio_engraver () +Arpeggio_engraver::Arpeggio_engraver (Context *c) + : Engraver (c) { arpeggio_ = 0; arpeggio_event_ = 0; diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 3f03362b3b..2c61f00959 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -147,7 +147,8 @@ Auto_beam_engraver::process_music () } } -Auto_beam_engraver::Auto_beam_engraver () +Auto_beam_engraver::Auto_beam_engraver (Context *c) + : Engraver (c) { forbid_ = 0; process_acknowledged_count_ = 0; @@ -589,7 +590,8 @@ private: virtual bool test_moment (Direction, Moment, Moment); }; -Grace_auto_beam_engraver::Grace_auto_beam_engraver () +Grace_auto_beam_engraver::Grace_auto_beam_engraver (Context *c) + : Auto_beam_engraver (c) { last_grace_start_.main_part_.set_infinite (-1); // grace_part_ is zero -> test_moment is false, last_grace_position_ diff --git a/lily/axis-group-engraver.cc b/lily/axis-group-engraver.cc index 2a5f71e275..d500c6ba64 100644 --- a/lily/axis-group-engraver.cc +++ b/lily/axis-group-engraver.cc @@ -55,7 +55,8 @@ public: }; -Axis_group_engraver::Axis_group_engraver () +Axis_group_engraver::Axis_group_engraver (Context *c) + : Engraver (c) { staffline_ = 0; interesting_ = SCM_EOL; diff --git a/lily/balloon-engraver.cc b/lily/balloon-engraver.cc index 4f0f136db0..610a9906f0 100644 --- a/lily/balloon-engraver.cc +++ b/lily/balloon-engraver.cc @@ -49,7 +49,8 @@ Balloon_engraver::stop_translation_timestep () events_.clear (); } -Balloon_engraver::Balloon_engraver () +Balloon_engraver::Balloon_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 8feb63dd13..fb39ae4955 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -47,7 +47,8 @@ private: vector spanners_; }; -Bar_engraver::Bar_engraver () +Bar_engraver::Bar_engraver (Context *c) + : Engraver (c) { bar_ = 0; } diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index 1af5f19da1..44f155df6e 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -135,7 +135,8 @@ Bar_number_engraver::process_music () } } -Bar_number_engraver::Bar_number_engraver () +Bar_number_engraver::Bar_number_engraver (Context *c) + : Engraver (c) { text_ = 0; alternative_starting_bar_number_ = 0; diff --git a/lily/beam-collision-engraver.cc b/lily/beam-collision-engraver.cc index 31f96b72b1..4494bb03c2 100644 --- a/lily/beam-collision-engraver.cc +++ b/lily/beam-collision-engraver.cc @@ -49,7 +49,9 @@ public: TRANSLATOR_DECLARATIONS (Beam_collision_engraver); }; -Beam_collision_engraver::Beam_collision_engraver () {} +Beam_collision_engraver::Beam_collision_engraver (Context *c) + : Engraver (c) +{} bool Beam_collision_engraver::covered_grob_has_interface (Grob *covered_grob, Grob *beam) diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 9b4df64d9c..f252eea5e2 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -100,7 +100,8 @@ Beam_engraver::valid_end_point () return valid_start_point (); } -Beam_engraver::Beam_engraver () +Beam_engraver::Beam_engraver (Context *c) + : Engraver (c) { beam_ = 0; finished_beam_ = 0; @@ -349,7 +350,8 @@ protected: virtual bool valid_end_point (); }; -Grace_beam_engraver::Grace_beam_engraver () +Grace_beam_engraver::Grace_beam_engraver (Context *c) + : Beam_engraver (c) { } diff --git a/lily/beam-performer.cc b/lily/beam-performer.cc index 0970e8b5e7..dad58500ca 100644 --- a/lily/beam-performer.cc +++ b/lily/beam-performer.cc @@ -42,7 +42,8 @@ private: bool beam_; }; -Beam_performer::Beam_performer () +Beam_performer::Beam_performer (Context *c) + : Performer (c) { beam_ = false; start_ev_ = 0; diff --git a/lily/bend-engraver.cc b/lily/bend-engraver.cc index 83c98a94e0..f9eaaa71f4 100644 --- a/lily/bend-engraver.cc +++ b/lily/bend-engraver.cc @@ -107,7 +107,8 @@ Bend_engraver::acknowledge_note_head (Grob_info info) now_mom ()); } -Bend_engraver::Bend_engraver () +Bend_engraver::Bend_engraver (Context *c) + : Engraver (c) { fall_ = 0; last_fall_ = 0; diff --git a/lily/break-align-engraver.cc b/lily/break-align-engraver.cc index 55a638da87..160f6fe7ec 100644 --- a/lily/break-align-engraver.cc +++ b/lily/break-align-engraver.cc @@ -53,7 +53,8 @@ Break_align_engraver::stop_translation_timestep () left_edge_ = 0; } -Break_align_engraver::Break_align_engraver () +Break_align_engraver::Break_align_engraver (Context *c) + : Engraver (c) { column_alist_ = SCM_EOL; left_edge_ = 0; diff --git a/lily/breathing-sign-engraver.cc b/lily/breathing-sign-engraver.cc index ade1b15f29..917a47d4f6 100644 --- a/lily/breathing-sign-engraver.cc +++ b/lily/breathing-sign-engraver.cc @@ -45,7 +45,8 @@ private: Grob *breathing_sign_; }; -Breathing_sign_engraver::Breathing_sign_engraver () +Breathing_sign_engraver::Breathing_sign_engraver (Context *c) + : Engraver (c) { breathing_sign_ = 0; breathing_sign_event_ = 0; diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 3a14ff4b07..3d989ccfb1 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -52,7 +52,8 @@ Chord_name_engraver::finalize () { } -Chord_name_engraver::Chord_name_engraver () +Chord_name_engraver::Chord_name_engraver (Context *c) + : Engraver (c) { rest_event_ = 0; } diff --git a/lily/chord-tremolo-engraver.cc b/lily/chord-tremolo-engraver.cc index 7a17c1350e..9e48a1a490 100644 --- a/lily/chord-tremolo-engraver.cc +++ b/lily/chord-tremolo-engraver.cc @@ -66,7 +66,8 @@ protected: void acknowledge_stem (Grob_info); }; -Chord_tremolo_engraver::Chord_tremolo_engraver () +Chord_tremolo_engraver::Chord_tremolo_engraver (Context *c) + : Engraver (c) { beam_ = 0; repeat_ = 0; diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index 00b3c3e55a..5d30ce07c2 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -62,7 +62,8 @@ Clef_engraver::derived_mark () const scm_gc_mark (prev_glyph_); } -Clef_engraver::Clef_engraver () +Clef_engraver::Clef_engraver (Context *c) + : Engraver (c) { clef_ = 0; modifier_ = 0; diff --git a/lily/cluster-engraver.cc b/lily/cluster-engraver.cc index 0c84d1cb65..e8ba451212 100644 --- a/lily/cluster-engraver.cc +++ b/lily/cluster-engraver.cc @@ -48,7 +48,8 @@ private: Spanner *finished_spanner_; }; -Cluster_spanner_engraver::Cluster_spanner_engraver () +Cluster_spanner_engraver::Cluster_spanner_engraver (Context *c) + : Engraver (c) { spanner_ = 0; finished_spanner_ = 0; diff --git a/lily/collision-engraver.cc b/lily/collision-engraver.cc index ca6a52d320..15ee2d2923 100644 --- a/lily/collision-engraver.cc +++ b/lily/collision-engraver.cc @@ -73,7 +73,8 @@ Collision_engraver::stop_translation_timestep () note_columns_.clear (); } -Collision_engraver::Collision_engraver () +Collision_engraver::Collision_engraver (Context *c) + : Engraver (c) { col_ = 0; } diff --git a/lily/completion-note-heads-engraver.cc b/lily/completion-note-heads-engraver.cc index ef3a5012a2..18b51cd4ec 100644 --- a/lily/completion-note-heads-engraver.cc +++ b/lily/completion-note-heads-engraver.cc @@ -301,7 +301,8 @@ Completion_heads_engraver::start_translation_timestep () ly_bool2scm (note_events_.size ())); } -Completion_heads_engraver::Completion_heads_engraver () +Completion_heads_engraver::Completion_heads_engraver (Context *c) + : Engraver (c) { tie_column_ = 0; } diff --git a/lily/completion-rest-engraver.cc b/lily/completion-rest-engraver.cc index 2b5693916e..c3b8b10955 100644 --- a/lily/completion-rest-engraver.cc +++ b/lily/completion-rest-engraver.cc @@ -253,7 +253,8 @@ Completion_rest_engraver::start_translation_timestep () ly_bool2scm (rest_events_.size ())); } -Completion_rest_engraver::Completion_rest_engraver () +Completion_rest_engraver::Completion_rest_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/concurrent-hairpin-engraver.cc b/lily/concurrent-hairpin-engraver.cc index 3fdf6524c2..17cd90196e 100644 --- a/lily/concurrent-hairpin-engraver.cc +++ b/lily/concurrent-hairpin-engraver.cc @@ -46,7 +46,8 @@ private: vector hairpins_hanging_out_; }; -Concurrent_hairpin_engraver::Concurrent_hairpin_engraver () +Concurrent_hairpin_engraver::Concurrent_hairpin_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/control-track-performer.cc b/lily/control-track-performer.cc index db6efe649e..3846e3102d 100644 --- a/lily/control-track-performer.cc +++ b/lily/control-track-performer.cc @@ -21,7 +21,8 @@ protected: virtual void acknowledge_audio_element (Audio_element_info info); }; -Control_track_performer::Control_track_performer () +Control_track_performer::Control_track_performer (Context *c) + : Performer (c) { control_track_ = 0; } diff --git a/lily/cue-clef-engraver.cc b/lily/cue-clef-engraver.cc index 53640afadc..b39b5ba34d 100644 --- a/lily/cue-clef-engraver.cc +++ b/lily/cue-clef-engraver.cc @@ -66,7 +66,8 @@ Cue_clef_engraver::derived_mark () const scm_gc_mark (prev_glyph_); } -Cue_clef_engraver::Cue_clef_engraver () +Cue_clef_engraver::Cue_clef_engraver (Context *c) + : Engraver (c) { clef_ = 0; modifier_ = 0; diff --git a/lily/custos-engraver.cc b/lily/custos-engraver.cc index a21ad4eb78..7d15aeaba8 100644 --- a/lily/custos-engraver.cc +++ b/lily/custos-engraver.cc @@ -52,7 +52,8 @@ private: vector pitches_; }; -Custos_engraver::Custos_engraver () +Custos_engraver::Custos_engraver (Context *c) + : Engraver (c) { custos_permitted_ = false; } diff --git a/lily/default-bar-line-engraver.cc b/lily/default-bar-line-engraver.cc index a8b9898276..f3d1d59505 100644 --- a/lily/default-bar-line-engraver.cc +++ b/lily/default-bar-line-engraver.cc @@ -65,7 +65,8 @@ ADD_TRANSLATOR (Default_bar_line_engraver, "" ); -Default_bar_line_engraver::Default_bar_line_engraver () +Default_bar_line_engraver::Default_bar_line_engraver (Context *c) + : Engraver (c) { last_moment_.main_part_ = Rational (-1); } diff --git a/lily/dot-column-engraver.cc b/lily/dot-column-engraver.cc index c5c8001524..2e905fe405 100644 --- a/lily/dot-column-engraver.cc +++ b/lily/dot-column-engraver.cc @@ -37,7 +37,8 @@ protected: void stop_translation_timestep (); }; -Dot_column_engraver::Dot_column_engraver () +Dot_column_engraver::Dot_column_engraver (Context *c) + : Engraver (c) { dotcol_ = 0; } diff --git a/lily/dots-engraver.cc b/lily/dots-engraver.cc index cbd6c718a9..eb0f487226 100644 --- a/lily/dots-engraver.cc +++ b/lily/dots-engraver.cc @@ -31,7 +31,8 @@ class Dots_engraver : public Engraver TRANSLATOR_DECLARATIONS (Dots_engraver); }; -Dots_engraver::Dots_engraver () +Dots_engraver::Dots_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/double-percent-repeat-engraver.cc b/lily/double-percent-repeat-engraver.cc index d1717f8314..ec927c9eee 100644 --- a/lily/double-percent-repeat-engraver.cc +++ b/lily/double-percent-repeat-engraver.cc @@ -43,7 +43,8 @@ protected: void process_music (); }; -Double_percent_repeat_engraver::Double_percent_repeat_engraver () +Double_percent_repeat_engraver::Double_percent_repeat_engraver (Context *c) + : Engraver (c) { percent_event_ = 0; } diff --git a/lily/drum-note-engraver.cc b/lily/drum-note-engraver.cc index 16b089cb70..e358d8e0d6 100644 --- a/lily/drum-note-engraver.cc +++ b/lily/drum-note-engraver.cc @@ -49,7 +49,8 @@ protected: void stop_translation_timestep (); }; -Drum_notes_engraver::Drum_notes_engraver () +Drum_notes_engraver::Drum_notes_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/drum-note-performer.cc b/lily/drum-note-performer.cc index 93f648f3d7..9fce62808f 100644 --- a/lily/drum-note-performer.cc +++ b/lily/drum-note-performer.cc @@ -38,7 +38,8 @@ private: vector note_evs_; }; -Drum_note_performer::Drum_note_performer () +Drum_note_performer::Drum_note_performer (Context *c) + : Performer (c) { } diff --git a/lily/dynamic-align-engraver.cc b/lily/dynamic-align-engraver.cc index c276e21759..ae3f968c58 100644 --- a/lily/dynamic-align-engraver.cc +++ b/lily/dynamic-align-engraver.cc @@ -57,7 +57,8 @@ private: set running_; }; -Dynamic_align_engraver::Dynamic_align_engraver () +Dynamic_align_engraver::Dynamic_align_engraver (Context *c) + : Engraver (c) { line_ = 0; ended_line_ = 0; diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 5d4ef33de3..686fbc5a68 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -58,7 +58,8 @@ private: bool end_new_spanner_; }; -Dynamic_engraver::Dynamic_engraver () +Dynamic_engraver::Dynamic_engraver (Context *c) + : Engraver (c) { script_event_ = 0; current_span_event_ = 0; diff --git a/lily/dynamic-performer.cc b/lily/dynamic-performer.cc index 23b7d43bfd..2a2a1fbd2a 100644 --- a/lily/dynamic-performer.cc +++ b/lily/dynamic-performer.cc @@ -123,8 +123,9 @@ private: State state_; }; -Dynamic_performer::Dynamic_performer () - : script_event_ (0), +Dynamic_performer::Dynamic_performer (Context *c) + : Performer (c), + script_event_ (0), next_grow_dir_ (CENTER), depart_dir_ (CENTER), state_ (STATE_INITIAL) diff --git a/lily/engraver.cc b/lily/engraver.cc index daf055ccf7..59c91306ef 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -81,7 +81,8 @@ Engraver::announce_end_grob (Grob *e, SCM cause) announce_end_grob (make_grob_info (e, cause)); } -Engraver::Engraver () +Engraver::Engraver (Context *c) + : Translator (c) { } diff --git a/lily/episema-engraver.cc b/lily/episema-engraver.cc index d2fc2f398f..b583794829 100644 --- a/lily/episema-engraver.cc +++ b/lily/episema-engraver.cc @@ -48,7 +48,8 @@ private: void typeset_all (); }; -Episema_engraver::Episema_engraver () +Episema_engraver::Episema_engraver (Context *c) + : Engraver (c) { finished_ = 0; current_event_ = 0; diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc index 39fa7788de..f1940083b9 100644 --- a/lily/extender-engraver.cc +++ b/lily/extender-engraver.cc @@ -53,7 +53,8 @@ protected: void process_music (); }; -Extender_engraver::Extender_engraver () +Extender_engraver::Extender_engraver (Context *c) + : Engraver (c) { extender_ = 0; pending_extender_ = 0; diff --git a/lily/figured-bass-engraver.cc b/lily/figured-bass-engraver.cc index 9785f3fef4..b2a79262bb 100644 --- a/lily/figured-bass-engraver.cc +++ b/lily/figured-bass-engraver.cc @@ -132,7 +132,8 @@ protected: void process_music (); }; -Figured_bass_engraver::Figured_bass_engraver () +Figured_bass_engraver::Figured_bass_engraver (Context *c) + : Engraver (c) { alignment_ = 0; continuation_ = false; diff --git a/lily/figured-bass-position-engraver.cc b/lily/figured-bass-position-engraver.cc index 66fabb1ffb..b35d037a35 100644 --- a/lily/figured-bass-position-engraver.cc +++ b/lily/figured-bass-position-engraver.cc @@ -49,7 +49,8 @@ protected: void stop_translation_timestep (); }; -Figured_bass_position_engraver::Figured_bass_position_engraver () +Figured_bass_position_engraver::Figured_bass_position_engraver (Context *c) + : Engraver (c) { positioner_ = 0; bass_figure_alignment_ = 0; diff --git a/lily/fingering-column-engraver.cc b/lily/fingering-column-engraver.cc index a2a37143b3..5662dfbf70 100644 --- a/lily/fingering-column-engraver.cc +++ b/lily/fingering-column-engraver.cc @@ -42,7 +42,8 @@ protected: void stop_translation_timestep (); }; -Fingering_column_engraver::Fingering_column_engraver () +Fingering_column_engraver::Fingering_column_engraver (Context *c) + : Engraver (c) { for (LEFT_and_RIGHT (d)) fingering_columns_[d] = 0; diff --git a/lily/fingering-engraver.cc b/lily/fingering-engraver.cc index 8de44e9698..4f40bff00e 100644 --- a/lily/fingering-engraver.cc +++ b/lily/fingering-engraver.cc @@ -136,7 +136,8 @@ Fingering_engraver::stop_translation_timestep () events_.clear (); } -Fingering_engraver::Fingering_engraver () +Fingering_engraver::Fingering_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/font-size-engraver.cc b/lily/font-size-engraver.cc index 4dfd24d014..3889a89e3b 100644 --- a/lily/font-size-engraver.cc +++ b/lily/font-size-engraver.cc @@ -31,7 +31,8 @@ protected: private: }; -Font_size_engraver::Font_size_engraver () +Font_size_engraver::Font_size_engraver (Context *c) + : Engraver (c) { size = 0.0; } diff --git a/lily/footnote-engraver.cc b/lily/footnote-engraver.cc index e80d9b64ce..ea5c4781b5 100644 --- a/lily/footnote-engraver.cc +++ b/lily/footnote-engraver.cc @@ -49,7 +49,8 @@ Footnote_engraver::finalize () annotated_spanners_.clear (); } -Footnote_engraver::Footnote_engraver () +Footnote_engraver::Footnote_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/forbid-break-engraver.cc b/lily/forbid-break-engraver.cc index 9cfdef24c8..c5e4b7b06e 100644 --- a/lily/forbid-break-engraver.cc +++ b/lily/forbid-break-engraver.cc @@ -33,7 +33,8 @@ public: void start_translation_timestep (); }; -Forbid_line_break_engraver::Forbid_line_break_engraver () +Forbid_line_break_engraver::Forbid_line_break_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/fretboard-engraver.cc b/lily/fretboard-engraver.cc index 18843fc87c..28b4bd1931 100644 --- a/lily/fretboard-engraver.cc +++ b/lily/fretboard-engraver.cc @@ -62,7 +62,8 @@ Fretboard_engraver::derived_mark () const scm_gc_mark (last_placements_); } -Fretboard_engraver::Fretboard_engraver () +Fretboard_engraver::Fretboard_engraver (Context *c) + : Engraver (c) { fret_board_ = 0; last_placements_ = SCM_BOOL_F; diff --git a/lily/glissando-engraver.cc b/lily/glissando-engraver.cc index 878e7f88b3..50e0386c62 100644 --- a/lily/glissando-engraver.cc +++ b/lily/glissando-engraver.cc @@ -53,7 +53,8 @@ private: vector note_column_2; }; -Glissando_engraver::Glissando_engraver () +Glissando_engraver::Glissando_engraver (Context *c) + : Engraver (c) { event_ = 0; start_glissandi_ = false; diff --git a/lily/grace-engraver.cc b/lily/grace-engraver.cc index 57ccb1e0fa..59550ba832 100644 --- a/lily/grace-engraver.cc +++ b/lily/grace-engraver.cc @@ -41,7 +41,8 @@ protected: void grace_change (SCM); }; -Grace_engraver::Grace_engraver () +Grace_engraver::Grace_engraver (Context *c) + : Engraver (c) { grace_settings_ = SCM_EOL; last_moment_ = Moment (Rational (-1, 1)); diff --git a/lily/grace-spacing-engraver.cc b/lily/grace-spacing-engraver.cc index 445d2b0f81..57b9349539 100644 --- a/lily/grace-spacing-engraver.cc +++ b/lily/grace-spacing-engraver.cc @@ -38,7 +38,8 @@ protected: void stop_translation_timestep (); }; -Grace_spacing_engraver::Grace_spacing_engraver () +Grace_spacing_engraver::Grace_spacing_engraver (Context *c) + : Engraver (c) { grace_spacing_ = 0; } diff --git a/lily/gregorian-ligature-engraver.cc b/lily/gregorian-ligature-engraver.cc index 4e4fc135c4..ad8b423eb5 100644 --- a/lily/gregorian-ligature-engraver.cc +++ b/lily/gregorian-ligature-engraver.cc @@ -42,7 +42,8 @@ * engravers for Gregorian chant will be added in the future, such as * Medicaea_ligature_engraver or Hufnagel_ligature_engraver. */ -Gregorian_ligature_engraver::Gregorian_ligature_engraver () +Gregorian_ligature_engraver::Gregorian_ligature_engraver (Context *c) + : Coherent_ligature_engraver (c) { pes_or_flexa_req_ = 0; } diff --git a/lily/grid-line-span-engraver.cc b/lily/grid-line-span-engraver.cc index efecf67622..d5f0335a48 100644 --- a/lily/grid-line-span-engraver.cc +++ b/lily/grid-line-span-engraver.cc @@ -35,7 +35,8 @@ protected: void stop_translation_timestep (); }; -Grid_line_span_engraver::Grid_line_span_engraver () +Grid_line_span_engraver::Grid_line_span_engraver (Context *c) + : Engraver (c) { spanline_ = 0; } diff --git a/lily/grid-point-engraver.cc b/lily/grid-point-engraver.cc index d67fb191b6..dd8ff1bdd9 100644 --- a/lily/grid-point-engraver.cc +++ b/lily/grid-point-engraver.cc @@ -44,7 +44,8 @@ Grid_point_engraver::process_music () } } -Grid_point_engraver::Grid_point_engraver () +Grid_point_engraver::Grid_point_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/grob-pq-engraver.cc b/lily/grob-pq-engraver.cc index 25392a4355..174b93c26a 100644 --- a/lily/grob-pq-engraver.cc +++ b/lily/grob-pq-engraver.cc @@ -50,7 +50,8 @@ protected: vector started_now_; }; -Grob_pq_engraver::Grob_pq_engraver () +Grob_pq_engraver::Grob_pq_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/horizontal-bracket-engraver.cc b/lily/horizontal-bracket-engraver.cc index d50146a2d0..6dd34c1785 100644 --- a/lily/horizontal-bracket-engraver.cc +++ b/lily/horizontal-bracket-engraver.cc @@ -43,7 +43,8 @@ public: void listen_note_grouping (Stream_event *); }; -Horizontal_bracket_engraver::Horizontal_bracket_engraver () +Horizontal_bracket_engraver::Horizontal_bracket_engraver (Context *c) + : Engraver (c) { pop_count_ = 0; push_count_ = 0; diff --git a/lily/hyphen-engraver.cc b/lily/hyphen-engraver.cc index 19ff388963..20d2a7c938 100644 --- a/lily/hyphen-engraver.cc +++ b/lily/hyphen-engraver.cc @@ -51,7 +51,8 @@ protected: void process_music (); }; -Hyphen_engraver::Hyphen_engraver () +Hyphen_engraver::Hyphen_engraver (Context *c) + : Engraver (c) { hyphen_ = 0; finished_hyphen_ = 0; diff --git a/lily/include/coherent-ligature-engraver.hh b/lily/include/coherent-ligature-engraver.hh index 78bfef8897..fb509dcb22 100644 --- a/lily/include/coherent-ligature-engraver.hh +++ b/lily/include/coherent-ligature-engraver.hh @@ -24,6 +24,9 @@ class Coherent_ligature_engraver : public Ligature_engraver { public: + Coherent_ligature_engraver(Context *c) + : Ligature_engraver (c) + {} // no TRANSLATOR_DECLARATIONS (Coherent_ligature_engraver) needed // since this class is abstract TRANSLATOR_INHERIT (Ligature_engraver); diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh index 074b531389..cecc42ce5e 100644 --- a/lily/include/engraver.hh +++ b/lily/include/engraver.hh @@ -80,7 +80,7 @@ public: */ DECLARE_CLASSNAME (Engraver); DECLARE_TRANSLATOR_CALLBACKS (Engraver); - Engraver (); + Engraver (Context *); }; #define make_item(x, cause) internal_make_item (ly_symbol2scm (x), cause, __FILE__, __LINE__, __FUNCTION__) diff --git a/lily/include/gregorian-ligature-engraver.hh b/lily/include/gregorian-ligature-engraver.hh index fcac99c322..f2a1334ae9 100644 --- a/lily/include/gregorian-ligature-engraver.hh +++ b/lily/include/gregorian-ligature-engraver.hh @@ -32,7 +32,7 @@ public: TRANSLATOR_INHERIT(Coherent_ligature_engraver); DECLARE_TRANSLATOR_CALLBACKS (Gregorian_ligature_engraver); protected: - Gregorian_ligature_engraver (); + Gregorian_ligature_engraver (Context *); void listen_pes_or_flexa (Stream_event *ev); virtual void build_ligature (Spanner *ligature, diff --git a/lily/include/ligature-engraver.hh b/lily/include/ligature-engraver.hh index a46c3fe22a..6e117a2ea3 100644 --- a/lily/include/ligature-engraver.hh +++ b/lily/include/ligature-engraver.hh @@ -26,7 +26,7 @@ class Ligature_engraver : public Engraver { protected: - Ligature_engraver (); + Ligature_engraver (Context *c); void stop_translation_timestep (); virtual void finalize (); diff --git a/lily/include/performer.hh b/lily/include/performer.hh index 70354fdbf2..a19334b9bf 100644 --- a/lily/include/performer.hh +++ b/lily/include/performer.hh @@ -33,6 +33,9 @@ public: DECLARE_CLASSNAME (Performer); friend class Performer_group; Performer_group *get_daddy_performer () const; + Performer (Context *c) + : Translator (c) + { } protected: virtual void announce_element (Audio_element_info); diff --git a/lily/include/translator.hh b/lily/include/translator.hh index 09ab168658..ffd134efab 100644 --- a/lily/include/translator.hh +++ b/lily/include/translator.hh @@ -77,7 +77,7 @@ return static_get_acknowledger (sym, start_end); \ } \ public: \ - NAME (); \ + NAME (Context *); \ static void boot (); \ virtual SCM static_translator_description () const; \ virtual SCM translator_description () const; \ @@ -106,13 +106,10 @@ public: SCM mark_smob () const; static const char * const type_p_name_; virtual ~Translator (); -private: - void init (); -public: Context *context () const { return daddy_context_; } - Translator (); + Translator (Context *); Translator (Translator const &); SCM internal_get_property (SCM symbol) const; diff --git a/lily/include/translator.icc b/lily/include/translator.icc index 80a7466cd1..20954ead0b 100644 --- a/lily/include/translator.icc +++ b/lily/include/translator.icc @@ -36,7 +36,7 @@ static void _ ## T ## _adder () \ { \ T::boot (); \ - T *t = new T; \ + T *t = new T(0); \ T::static_description_ = \ scm_permanent_object (t->static_translator_description ()); \ add_translator (t); \ diff --git a/lily/instrument-name-engraver.cc b/lily/instrument-name-engraver.cc index ec37d6bcbf..8ba26f31be 100644 --- a/lily/instrument-name-engraver.cc +++ b/lily/instrument-name-engraver.cc @@ -59,7 +59,8 @@ Instrument_name_engraver::derived_mark () const scm_gc_mark (short_text_); } -Instrument_name_engraver::Instrument_name_engraver () +Instrument_name_engraver::Instrument_name_engraver (Context *c) + : Engraver (c) { text_spanner_ = 0; diff --git a/lily/instrument-switch-engraver.cc b/lily/instrument-switch-engraver.cc index 59cbb4f13c..cfc3cd5c82 100644 --- a/lily/instrument-switch-engraver.cc +++ b/lily/instrument-switch-engraver.cc @@ -44,7 +44,8 @@ Instrument_switch_engraver::derived_mark () const scm_gc_mark (cue_name_); } -Instrument_switch_engraver::Instrument_switch_engraver () +Instrument_switch_engraver::Instrument_switch_engraver (Context *c) + : Engraver (c) { cue_name_ = SCM_EOL; text_ = 0; diff --git a/lily/keep-alive-together-engraver.cc b/lily/keep-alive-together-engraver.cc index 8931a819c6..6875cd022f 100644 --- a/lily/keep-alive-together-engraver.cc +++ b/lily/keep-alive-together-engraver.cc @@ -37,7 +37,8 @@ public: virtual void finalize (); }; -Keep_alive_together_engraver::Keep_alive_together_engraver () +Keep_alive_together_engraver::Keep_alive_together_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 115902e89d..f54421cf25 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -56,7 +56,8 @@ Key_engraver::finalize () { } -Key_engraver::Key_engraver () +Key_engraver::Key_engraver (Context *c) + : Engraver (c) { key_event_ = 0; item_ = 0; diff --git a/lily/key-performer.cc b/lily/key-performer.cc index 219454115a..5de378eda4 100644 --- a/lily/key-performer.cc +++ b/lily/key-performer.cc @@ -42,7 +42,8 @@ private: Audio_key *audio_; }; -Key_performer::Key_performer () +Key_performer::Key_performer (Context *c) + : Performer (c) { key_ev_ = 0; audio_ = 0; diff --git a/lily/kievan-ligature-engraver.cc b/lily/kievan-ligature-engraver.cc index ff9e7b942b..162674df2e 100644 --- a/lily/kievan-ligature-engraver.cc +++ b/lily/kievan-ligature-engraver.cc @@ -45,7 +45,8 @@ private: void fold_up_primitives (vector const &primitives, Real padding, Real &min_length); }; -Kievan_ligature_engraver::Kievan_ligature_engraver () +Kievan_ligature_engraver::Kievan_ligature_engraver (Context *c) + : Coherent_ligature_engraver (c) { } diff --git a/lily/laissez-vibrer-engraver.cc b/lily/laissez-vibrer-engraver.cc index e84ea36bca..2d2e2dd2e8 100644 --- a/lily/laissez-vibrer-engraver.cc +++ b/lily/laissez-vibrer-engraver.cc @@ -39,7 +39,8 @@ public: TRANSLATOR_DECLARATIONS (Laissez_vibrer_engraver); }; -Laissez_vibrer_engraver::Laissez_vibrer_engraver () +Laissez_vibrer_engraver::Laissez_vibrer_engraver (Context *c) + : Engraver (c) { event_ = 0; lv_column_ = 0; diff --git a/lily/ledger-line-engraver.cc b/lily/ledger-line-engraver.cc index 869720cca4..cde6f5817c 100644 --- a/lily/ledger-line-engraver.cc +++ b/lily/ledger-line-engraver.cc @@ -44,7 +44,8 @@ protected: void stop_translation_timestep (); }; -Ledger_line_engraver::Ledger_line_engraver () +Ledger_line_engraver::Ledger_line_engraver (Context *c) + : Engraver (c) { span_ = 0; } diff --git a/lily/ligature-bracket-engraver.cc b/lily/ligature-bracket-engraver.cc index 4919071d97..9e50962ddc 100644 --- a/lily/ligature-bracket-engraver.cc +++ b/lily/ligature-bracket-engraver.cc @@ -53,7 +53,8 @@ Ligature_bracket_engraver::listen_ligature (Stream_event *ev) ASSIGN_EVENT_ONCE (events_drul_[d], ev); } -Ligature_bracket_engraver::Ligature_bracket_engraver () +Ligature_bracket_engraver::Ligature_bracket_engraver (Context *c) + : Engraver (c) { ligature_ = 0; finished_ligature_ = 0; diff --git a/lily/ligature-engraver.cc b/lily/ligature-engraver.cc index f3bac03c76..08d3b41996 100644 --- a/lily/ligature-engraver.cc +++ b/lily/ligature-engraver.cc @@ -82,7 +82,8 @@ * would require to have a single, complicated Ligature_engraver that * consists of all the code... This needs further thoughts. */ -Ligature_engraver::Ligature_engraver () +Ligature_engraver::Ligature_engraver (Context *c) + : Engraver (c) { ligature_ = 0; finished_ligature_ = 0; diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index 08c9306693..bad1203266 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -49,7 +49,8 @@ private: Context *get_voice_context (); }; -Lyric_engraver::Lyric_engraver () +Lyric_engraver::Lyric_engraver (Context *c) + : Engraver (c) { text_ = 0; last_text_ = 0; diff --git a/lily/lyric-performer.cc b/lily/lyric-performer.cc index 6a25d62a3f..9ba25c5bf1 100644 --- a/lily/lyric-performer.cc +++ b/lily/lyric-performer.cc @@ -36,7 +36,8 @@ private: Audio_text *audio_; }; -Lyric_performer::Lyric_performer () +Lyric_performer::Lyric_performer (Context *c) + : Performer (c) { audio_ = 0; } diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index a849ec11ce..2242a44f22 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -58,7 +58,8 @@ protected: void acknowledge_break_alignment (Grob_info); }; -Mark_engraver::Mark_engraver () +Mark_engraver::Mark_engraver (Context *c) + : Engraver (c) { text_ = 0; final_text_ = 0; diff --git a/lily/measure-grouping-engraver.cc b/lily/measure-grouping-engraver.cc index 2ab7a7bcc6..c91fdc6341 100644 --- a/lily/measure-grouping-engraver.cc +++ b/lily/measure-grouping-engraver.cc @@ -114,7 +114,8 @@ Measure_grouping_engraver::process_music () } } -Measure_grouping_engraver::Measure_grouping_engraver () +Measure_grouping_engraver::Measure_grouping_engraver (Context *c) + : Engraver (c) { grouping_ = 0; } diff --git a/lily/melody-engraver.cc b/lily/melody-engraver.cc index a97d13755f..65f464c357 100644 --- a/lily/melody-engraver.cc +++ b/lily/melody-engraver.cc @@ -37,7 +37,8 @@ protected: void process_music (); }; -Melody_engraver::Melody_engraver () +Melody_engraver::Melody_engraver (Context *c) + : Engraver (c) { stem_ = 0; melody_item_ = 0; diff --git a/lily/mensural-ligature-engraver.cc b/lily/mensural-ligature-engraver.cc index 874b2ebb35..482538c720 100644 --- a/lily/mensural-ligature-engraver.cc +++ b/lily/mensural-ligature-engraver.cc @@ -73,7 +73,8 @@ private: Real &min_length); }; -Mensural_ligature_engraver::Mensural_ligature_engraver () +Mensural_ligature_engraver::Mensural_ligature_engraver (Context *c) + : Coherent_ligature_engraver (c) { brew_ligature_primitive_proc = Mensural_ligature::brew_ligature_primitive_proc; diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc index 241a2da44a..6cd2bfde25 100644 --- a/lily/metronome-engraver.cc +++ b/lily/metronome-engraver.cc @@ -53,7 +53,8 @@ protected: void listen_tempo_change (Stream_event *); }; -Metronome_mark_engraver::Metronome_mark_engraver () +Metronome_mark_engraver::Metronome_mark_engraver (Context *c) + : Engraver (c) { text_ = 0; support_ = 0; diff --git a/lily/midi-cc-performer.cc b/lily/midi-cc-performer.cc index 2aff5d0039..91eddbfb69 100644 --- a/lily/midi-cc-performer.cc +++ b/lily/midi-cc-performer.cc @@ -63,7 +63,8 @@ private: }; }; -Midi_control_change_performer::Midi_control_change_performer () +Midi_control_change_performer::Midi_control_change_performer (Context *c) + : Performer (c) { } diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 0a6071b614..d66779f6ff 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -65,8 +65,9 @@ private: bool first_time_; }; -Multi_measure_rest_engraver::Multi_measure_rest_engraver () - : rest_ev_ (0), +Multi_measure_rest_engraver::Multi_measure_rest_engraver (Context *c) + : Engraver (c), + rest_ev_ (0), mmrest_ (0), start_measure_ (0), last_command_item_ (0), diff --git a/lily/new-fingering-engraver.cc b/lily/new-fingering-engraver.cc index 047a547525..06a3a8da96 100644 --- a/lily/new-fingering-engraver.cc +++ b/lily/new-fingering-engraver.cc @@ -364,7 +364,8 @@ New_fingering_engraver::position_all () articulations_.clear (); } -New_fingering_engraver::New_fingering_engraver () +New_fingering_engraver::New_fingering_engraver (Context *c) + : Engraver (c) { stem_ = 0; } diff --git a/lily/note-head-line-engraver.cc b/lily/note-head-line-engraver.cc index b09fe66361..f2d3ad8684 100644 --- a/lily/note-head-line-engraver.cc +++ b/lily/note-head-line-engraver.cc @@ -51,7 +51,8 @@ private: Grob *last_head_; }; -Note_head_line_engraver::Note_head_line_engraver () +Note_head_line_engraver::Note_head_line_engraver (Context *c) + : Engraver (c) { line_ = 0; follow_ = false; diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 5839a827eb..7c82106623 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -46,7 +46,8 @@ protected: void stop_translation_timestep (); }; -Note_heads_engraver::Note_heads_engraver () +Note_heads_engraver::Note_heads_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/note-name-engraver.cc b/lily/note-name-engraver.cc index 2b8fa87000..1333feb4a6 100644 --- a/lily/note-name-engraver.cc +++ b/lily/note-name-engraver.cc @@ -69,7 +69,8 @@ Note_name_engraver::stop_translation_timestep () events_.clear (); } -Note_name_engraver::Note_name_engraver () +Note_name_engraver::Note_name_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/note-performer.cc b/lily/note-performer.cc index 468210d20d..44efd74574 100644 --- a/lily/note-performer.cc +++ b/lily/note-performer.cc @@ -196,6 +196,7 @@ ADD_TRANSLATOR (Note_performer, "" ); -Note_performer::Note_performer () +Note_performer::Note_performer (Context *c) + : Performer (c) { } diff --git a/lily/note-spacing-engraver.cc b/lily/note-spacing-engraver.cc index 414e1ee761..653aa8db02 100644 --- a/lily/note-spacing-engraver.cc +++ b/lily/note-spacing-engraver.cc @@ -55,7 +55,8 @@ Note_spacing_engraver::derived_mark () const scm_gc_mark (i->first->self_scm ()); } -Note_spacing_engraver::Note_spacing_engraver () +Note_spacing_engraver::Note_spacing_engraver (Context *c) + : Engraver (c) { spacing_ = 0; last_spacing_ = 0; diff --git a/lily/ottava-engraver.cc b/lily/ottava-engraver.cc index e681e73af6..9a846377fb 100644 --- a/lily/ottava-engraver.cc +++ b/lily/ottava-engraver.cc @@ -52,7 +52,8 @@ Ottava_spanner_engraver::derived_mark () const scm_gc_mark (last_ottavation_); } -Ottava_spanner_engraver::Ottava_spanner_engraver () +Ottava_spanner_engraver::Ottava_spanner_engraver (Context *c) + : Engraver (c) { finished_ = 0; span_ = 0; diff --git a/lily/output-property-engraver.cc b/lily/output-property-engraver.cc index 370d6e1c1f..ccef5051f1 100644 --- a/lily/output-property-engraver.cc +++ b/lily/output-property-engraver.cc @@ -75,7 +75,8 @@ Output_property_engraver::stop_translation_timestep () props_.clear (); } -Output_property_engraver::Output_property_engraver () +Output_property_engraver::Output_property_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/page-turn-engraver.cc b/lily/page-turn-engraver.cc index c77dc9b2a5..b294dce7d7 100644 --- a/lily/page-turn-engraver.cc +++ b/lily/page-turn-engraver.cc @@ -107,7 +107,8 @@ public: void finalize (); }; -Page_turn_engraver::Page_turn_engraver () +Page_turn_engraver::Page_turn_engraver (Context *c) + : Engraver (c) { repeat_begin_ = Moment (-1); repeat_begin_rest_length_ = 0; diff --git a/lily/paper-column-engraver.cc b/lily/paper-column-engraver.cc index 0e32f6e644..6dd2930013 100644 --- a/lily/paper-column-engraver.cc +++ b/lily/paper-column-engraver.cc @@ -34,7 +34,8 @@ #include "translator.icc" -Paper_column_engraver::Paper_column_engraver () +Paper_column_engraver::Paper_column_engraver (Context *c) + : Engraver (c) { last_moment_.main_part_ = Rational (-1, 1); command_column_ = 0; diff --git a/lily/parenthesis-engraver.cc b/lily/parenthesis-engraver.cc index dcbd506a4a..c9b9ec62a4 100644 --- a/lily/parenthesis-engraver.cc +++ b/lily/parenthesis-engraver.cc @@ -35,7 +35,8 @@ protected: void acknowledge_grob (Grob_info); }; -Parenthesis_engraver::Parenthesis_engraver () +Parenthesis_engraver::Parenthesis_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/part-combine-engraver.cc b/lily/part-combine-engraver.cc index 33c10f5966..9646d7a355 100644 --- a/lily/part-combine-engraver.cc +++ b/lily/part-combine-engraver.cc @@ -66,7 +66,8 @@ Part_combine_engraver::listen_note (Stream_event *) note_found_ = true; } -Part_combine_engraver::Part_combine_engraver () +Part_combine_engraver::Part_combine_engraver (Context *c) + : Engraver (c) { text_ = 0; new_event_ = 0; diff --git a/lily/percent-repeat-engraver.cc b/lily/percent-repeat-engraver.cc index b620cdccb5..da0b9b2964 100644 --- a/lily/percent-repeat-engraver.cc +++ b/lily/percent-repeat-engraver.cc @@ -57,7 +57,8 @@ protected: void process_music (); }; -Percent_repeat_engraver::Percent_repeat_engraver () +Percent_repeat_engraver::Percent_repeat_engraver (Context *c) + : Engraver (c) { percent_ = 0; percent_counter_ = 0; diff --git a/lily/phrasing-slur-engraver.cc b/lily/phrasing-slur-engraver.cc index 18f20f5430..aeee14a1ee 100644 --- a/lily/phrasing-slur-engraver.cc +++ b/lily/phrasing-slur-engraver.cc @@ -58,7 +58,8 @@ Phrasing_slur_engraver::object_name () const return "phrasing slur"; } -Phrasing_slur_engraver::Phrasing_slur_engraver () +Phrasing_slur_engraver::Phrasing_slur_engraver (Context *c) + : Slur_engraver (c) { } diff --git a/lily/piano-pedal-align-engraver.cc b/lily/piano-pedal-align-engraver.cc index 7c120a1bc1..0d07872db0 100644 --- a/lily/piano-pedal-align-engraver.cc +++ b/lily/piano-pedal-align-engraver.cc @@ -100,7 +100,8 @@ private: Spanner *make_line_spanner (Pedal_type t, SCM); }; -Piano_pedal_align_engraver::Piano_pedal_align_engraver () +Piano_pedal_align_engraver::Piano_pedal_align_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/piano-pedal-engraver.cc b/lily/piano-pedal-engraver.cc index cbdf5244d1..2a2d2aa8ec 100644 --- a/lily/piano-pedal-engraver.cc +++ b/lily/piano-pedal-engraver.cc @@ -181,7 +181,8 @@ init_pedal_types () ADD_SCM_INIT_FUNC (Piano_pedal_engraver_init_pedal_types_, init_pedal_types); -Piano_pedal_engraver::Piano_pedal_engraver () +Piano_pedal_engraver::Piano_pedal_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/piano-pedal-performer.cc b/lily/piano-pedal-performer.cc index a8273980e9..4a24625e04 100644 --- a/lily/piano-pedal-performer.cc +++ b/lily/piano-pedal-performer.cc @@ -56,7 +56,8 @@ private: Pedal_info info_alist_[NUM_PEDAL_TYPES]; }; -Piano_pedal_performer::Piano_pedal_performer () +Piano_pedal_performer::Piano_pedal_performer (Context *c) + : Performer (c) { } diff --git a/lily/pitch-squash-engraver.cc b/lily/pitch-squash-engraver.cc index 0750c59495..a5ccfa483e 100644 --- a/lily/pitch-squash-engraver.cc +++ b/lily/pitch-squash-engraver.cc @@ -39,7 +39,8 @@ Pitch_squash_engraver::acknowledge_note_head (Grob_info i) i.grob ()->set_property ("staff-position", newpos); } -Pitch_squash_engraver::Pitch_squash_engraver () +Pitch_squash_engraver::Pitch_squash_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/pitched-trill-engraver.cc b/lily/pitched-trill-engraver.cc index 1ec4da9aeb..0ab6bc989b 100644 --- a/lily/pitched-trill-engraver.cc +++ b/lily/pitched-trill-engraver.cc @@ -55,7 +55,8 @@ private: void make_trill (Stream_event *); }; -Pitched_trill_engraver::Pitched_trill_engraver () +Pitched_trill_engraver::Pitched_trill_engraver (Context *c) + : Engraver (c) { trill_head_ = 0; trill_group_ = 0; diff --git a/lily/pure-from-neighbor-engraver.cc b/lily/pure-from-neighbor-engraver.cc index 3bd0fa1091..cea3936161 100644 --- a/lily/pure-from-neighbor-engraver.cc +++ b/lily/pure-from-neighbor-engraver.cc @@ -41,7 +41,8 @@ protected: void finalize (); }; -Pure_from_neighbor_engraver::Pure_from_neighbor_engraver () +Pure_from_neighbor_engraver::Pure_from_neighbor_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/repeat-acknowledge-engraver.cc b/lily/repeat-acknowledge-engraver.cc index d11b633fd5..00e0c8abe2 100644 --- a/lily/repeat-acknowledge-engraver.cc +++ b/lily/repeat-acknowledge-engraver.cc @@ -51,7 +51,8 @@ Repeat_acknowledge_engraver::initialize () context ()->set_property ("repeatCommands", SCM_EOL); } -Repeat_acknowledge_engraver::Repeat_acknowledge_engraver () +Repeat_acknowledge_engraver::Repeat_acknowledge_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/repeat-tie-engraver.cc b/lily/repeat-tie-engraver.cc index fb2c8bb584..aebed3fdba 100644 --- a/lily/repeat-tie-engraver.cc +++ b/lily/repeat-tie-engraver.cc @@ -39,7 +39,8 @@ public: TRANSLATOR_DECLARATIONS (Repeat_tie_engraver); }; -Repeat_tie_engraver::Repeat_tie_engraver () +Repeat_tie_engraver::Repeat_tie_engraver (Context *c) + : Engraver (c) { event_ = 0; semi_tie_column_ = 0; diff --git a/lily/rest-collision-engraver.cc b/lily/rest-collision-engraver.cc index 56a6783fbf..70984ae2ad 100644 --- a/lily/rest-collision-engraver.cc +++ b/lily/rest-collision-engraver.cc @@ -45,7 +45,8 @@ public: TRANSLATOR_DECLARATIONS (Rest_collision_engraver); }; -Rest_collision_engraver::Rest_collision_engraver () +Rest_collision_engraver::Rest_collision_engraver (Context *c) + : Engraver (c) { rest_collision_ = 0; } diff --git a/lily/rest-engraver.cc b/lily/rest-engraver.cc index d691c2e98c..8902e35911 100644 --- a/lily/rest-engraver.cc +++ b/lily/rest-engraver.cc @@ -45,7 +45,8 @@ public: /* Should merge with Note_head_engraver */ -Rest_engraver::Rest_engraver () +Rest_engraver::Rest_engraver (Context *c) + : Engraver (c) { rest_event_ = 0; rest_ = 0; diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 04281231d5..e307b512de 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -68,7 +68,8 @@ protected: void stop_translation_timestep (); }; -Rhythmic_column_engraver::Rhythmic_column_engraver () +Rhythmic_column_engraver::Rhythmic_column_engraver (Context *c) + : Engraver (c) { stem_ = 0; diff --git a/lily/scheme-engraver.cc b/lily/scheme-engraver.cc index d0abfb1bd0..ad4186d81c 100644 --- a/lily/scheme-engraver.cc +++ b/lily/scheme-engraver.cc @@ -65,6 +65,7 @@ Scheme_engraver::fetch_precomputable_methods (SCM ptrs[]) } Scheme_engraver::Scheme_engraver (SCM definition) + : Engraver (0) { precomputable_methods_[START_TRANSLATION_TIMESTEP] = callable (ly_symbol2scm ("start-translation-timestep"), definition); diff --git a/lily/script-column-engraver.cc b/lily/script-column-engraver.cc index 6310f3b540..e94e233882 100644 --- a/lily/script-column-engraver.cc +++ b/lily/script-column-engraver.cc @@ -40,7 +40,8 @@ protected: void stop_translation_timestep (); }; -Script_column_engraver::Script_column_engraver () +Script_column_engraver::Script_column_engraver (Context *c) + : Engraver (c) { script_column_ = 0; } diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 8a7b122f1f..1e989ae55d 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -67,7 +67,8 @@ public: TRANSLATOR_DECLARATIONS (Script_engraver); }; -Script_engraver::Script_engraver () +Script_engraver::Script_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/script-row-engraver.cc b/lily/script-row-engraver.cc index 20af8d1cbb..30ded2b834 100644 --- a/lily/script-row-engraver.cc +++ b/lily/script-row-engraver.cc @@ -45,7 +45,8 @@ protected: void stop_translation_timestep (); }; -Script_row_engraver::Script_row_engraver () +Script_row_engraver::Script_row_engraver (Context *c) + : Engraver (c) { script_row_ = 0; } diff --git a/lily/separating-line-group-engraver.cc b/lily/separating-line-group-engraver.cc index 5eb1407a31..234008d983 100644 --- a/lily/separating-line-group-engraver.cc +++ b/lily/separating-line-group-engraver.cc @@ -69,7 +69,8 @@ public: TRANSLATOR_DECLARATIONS (Separating_line_group_engraver); }; -Separating_line_group_engraver::Separating_line_group_engraver () +Separating_line_group_engraver::Separating_line_group_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/slash-repeat-engraver.cc b/lily/slash-repeat-engraver.cc index b1bdf9c0da..aa80c2e2e5 100644 --- a/lily/slash-repeat-engraver.cc +++ b/lily/slash-repeat-engraver.cc @@ -39,7 +39,8 @@ protected: void process_music (); }; -Slash_repeat_engraver::Slash_repeat_engraver () +Slash_repeat_engraver::Slash_repeat_engraver (Context *c) + : Engraver (c) { slash_ = 0; } diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index 80ceb5f431..2309f114de 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -53,7 +53,8 @@ Slur_engraver::object_name () const return "slur"; } -Slur_engraver::Slur_engraver () +Slur_engraver::Slur_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/slur-performer.cc b/lily/slur-performer.cc index 47fed784fe..6c8a433226 100644 --- a/lily/slur-performer.cc +++ b/lily/slur-performer.cc @@ -47,7 +47,8 @@ private: bool slur_; }; -Slur_performer::Slur_performer () +Slur_performer::Slur_performer (Context *c) + : Performer (c) { slur_ = false; start_ev_ = 0; diff --git a/lily/spacing-engraver.cc b/lily/spacing-engraver.cc index d77a55b757..00dc822760 100644 --- a/lily/spacing-engraver.cc +++ b/lily/spacing-engraver.cc @@ -93,7 +93,8 @@ protected: void stop_spanner (); }; -Spacing_engraver::Spacing_engraver () +Spacing_engraver::Spacing_engraver (Context *c) + : Engraver (c) { spacing_ = 0; start_section_ = 0; diff --git a/lily/span-arpeggio-engraver.cc b/lily/span-arpeggio-engraver.cc index 9cece4a6fe..dac5b91ab5 100644 --- a/lily/span-arpeggio-engraver.cc +++ b/lily/span-arpeggio-engraver.cc @@ -50,7 +50,8 @@ private: vector note_columns_; }; -Span_arpeggio_engraver::Span_arpeggio_engraver () +Span_arpeggio_engraver::Span_arpeggio_engraver (Context *c) + : Engraver (c) { span_arpeggio_ = 0; } diff --git a/lily/span-bar-engraver.cc b/lily/span-bar-engraver.cc index e74528535b..55ef59e32e 100644 --- a/lily/span-bar-engraver.cc +++ b/lily/span-bar-engraver.cc @@ -46,7 +46,8 @@ protected: void process_acknowledged (); }; -Span_bar_engraver::Span_bar_engraver () +Span_bar_engraver::Span_bar_engraver (Context *c) + : Engraver (c) { spanbar_ = 0; make_spanbar_ = false; diff --git a/lily/span-bar-stub-engraver.cc b/lily/span-bar-stub-engraver.cc index a0c10f8594..914e73ed4b 100644 --- a/lily/span-bar-stub-engraver.cc +++ b/lily/span-bar-stub-engraver.cc @@ -62,7 +62,8 @@ protected: virtual void derived_mark () const; }; -Span_bar_stub_engraver::Span_bar_stub_engraver () +Span_bar_stub_engraver::Span_bar_stub_engraver (Context *c) + : Engraver (c) { axis_groups_ = SCM_EOL; } diff --git a/lily/spanner-break-forbid-engraver.cc b/lily/spanner-break-forbid-engraver.cc index 8d64b40ce8..98bf1934d0 100644 --- a/lily/spanner-break-forbid-engraver.cc +++ b/lily/spanner-break-forbid-engraver.cc @@ -62,7 +62,8 @@ Spanner_break_forbid_engraver::acknowledge_unbreakable_spanner (Grob_info gi) running_spanners_.push_back (gi.spanner ()); } -Spanner_break_forbid_engraver::Spanner_break_forbid_engraver () +Spanner_break_forbid_engraver::Spanner_break_forbid_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/staff-collecting-engraver.cc b/lily/staff-collecting-engraver.cc index 88680943d3..97711c89b5 100644 --- a/lily/staff-collecting-engraver.cc +++ b/lily/staff-collecting-engraver.cc @@ -30,7 +30,8 @@ public: void acknowledge_end_staff_symbol (Grob_info); }; -Staff_collecting_engraver::Staff_collecting_engraver () +Staff_collecting_engraver::Staff_collecting_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/staff-performer.cc b/lily/staff-performer.cc index 592c6a7e01..1af71efd86 100644 --- a/lily/staff-performer.cc +++ b/lily/staff-performer.cc @@ -112,8 +112,9 @@ ADD_TRANSLATOR (Staff_performer, /* write */ ""); -Staff_performer::Staff_performer () - : channel_ (-1), +Staff_performer::Staff_performer (Context *c) + : Performer (c), + channel_ (-1), instrument_ (0), instrument_name_ (0), name_ (0), diff --git a/lily/staff-symbol-engraver.cc b/lily/staff-symbol-engraver.cc index c8f528f0f5..fad9f04379 100644 --- a/lily/staff-symbol-engraver.cc +++ b/lily/staff-symbol-engraver.cc @@ -68,7 +68,8 @@ Staff_symbol_engraver::~Staff_symbol_engraver () } } -Staff_symbol_engraver::Staff_symbol_engraver () +Staff_symbol_engraver::Staff_symbol_engraver (Context *c) + : Engraver (c) { finished_span_ = 0; first_start_ = true; diff --git a/lily/stanza-number-align-engraver.cc b/lily/stanza-number-align-engraver.cc index 39eae99831..53ec89358f 100644 --- a/lily/stanza-number-align-engraver.cc +++ b/lily/stanza-number-align-engraver.cc @@ -40,7 +40,8 @@ protected: void stop_translation_timestep (); }; -Stanza_number_align_engraver::Stanza_number_align_engraver () +Stanza_number_align_engraver::Stanza_number_align_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/stanza-number-engraver.cc b/lily/stanza-number-engraver.cc index 0a4539e8f1..f823e09919 100644 --- a/lily/stanza-number-engraver.cc +++ b/lily/stanza-number-engraver.cc @@ -47,7 +47,8 @@ Stanza_number_engraver::derived_mark () const all aligned. */ -Stanza_number_engraver::Stanza_number_engraver () +Stanza_number_engraver::Stanza_number_engraver (Context *c) + : Engraver (c) { text_ = 0; last_stanza_ = SCM_EOL; diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc index 8907c34bc3..199d9fd17e 100644 --- a/lily/stem-engraver.cc +++ b/lily/stem-engraver.cc @@ -56,7 +56,8 @@ protected: void kill_unused_flags (); }; -Stem_engraver::Stem_engraver () +Stem_engraver::Stem_engraver (Context *c) + : Engraver (c) { tremolo_ev_ = 0; stem_ = 0; diff --git a/lily/system-start-delimiter-engraver.cc b/lily/system-start-delimiter-engraver.cc index 2979e11a19..b7a210e869 100644 --- a/lily/system-start-delimiter-engraver.cc +++ b/lily/system-start-delimiter-engraver.cc @@ -176,7 +176,8 @@ protected: virtual void finalize (); }; -System_start_delimiter_engraver::System_start_delimiter_engraver () +System_start_delimiter_engraver::System_start_delimiter_engraver (Context *c) + : Engraver (c) { nesting_ = 0; } diff --git a/lily/tab-note-heads-engraver.cc b/lily/tab-note-heads-engraver.cc index 4294a2e5fe..18a1e122f6 100644 --- a/lily/tab-note-heads-engraver.cc +++ b/lily/tab-note-heads-engraver.cc @@ -57,7 +57,8 @@ protected: void stop_translation_timestep (); }; -Tab_note_heads_engraver::Tab_note_heads_engraver () +Tab_note_heads_engraver::Tab_note_heads_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/tab-staff-symbol-engraver.cc b/lily/tab-staff-symbol-engraver.cc index cde9e82bbb..843fc4eba6 100644 --- a/lily/tab-staff-symbol-engraver.cc +++ b/lily/tab-staff-symbol-engraver.cc @@ -36,7 +36,8 @@ Tab_staff_symbol_engraver::acknowledge_staff_symbol (Grob_info gi) gi.grob ()->set_property ("line-count", scm_from_int (k)); } -Tab_staff_symbol_engraver::Tab_staff_symbol_engraver () +Tab_staff_symbol_engraver::Tab_staff_symbol_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/tab-tie-follow-engraver.cc b/lily/tab-tie-follow-engraver.cc index 58c5203ef0..75a7b5b2ea 100644 --- a/lily/tab-tie-follow-engraver.cc +++ b/lily/tab-tie-follow-engraver.cc @@ -51,7 +51,8 @@ protected: void stop_translation_timestep (); }; -Tab_tie_follow_engraver::Tab_tie_follow_engraver () +Tab_tie_follow_engraver::Tab_tie_follow_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/tempo-performer.cc b/lily/tempo-performer.cc index 683f133d64..967ae60e70 100644 --- a/lily/tempo-performer.cc +++ b/lily/tempo-performer.cc @@ -47,7 +47,8 @@ Tempo_performer::derived_mark () const scm_gc_mark (last_tempo_); } -Tempo_performer::Tempo_performer () +Tempo_performer::Tempo_performer (Context *c) + : Performer (c) { last_tempo_ = SCM_EOL; audio_ = 0; diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 982b61a287..6bbcdc3794 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -105,7 +105,8 @@ Text_engraver::stop_translation_timestep () scripts_.clear (); } -Text_engraver::Text_engraver () +Text_engraver::Text_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/text-spanner-engraver.cc b/lily/text-spanner-engraver.cc index f63e19a059..1b66b68f12 100644 --- a/lily/text-spanner-engraver.cc +++ b/lily/text-spanner-engraver.cc @@ -47,7 +47,8 @@ private: void typeset_all (); }; -Text_spanner_engraver::Text_spanner_engraver () +Text_spanner_engraver::Text_spanner_engraver (Context *c) + : Engraver (c) { finished_ = 0; current_event_ = 0; diff --git a/lily/tie-engraver.cc b/lily/tie-engraver.cc index 2a016b31be..98eac4b19b 100644 --- a/lily/tie-engraver.cc +++ b/lily/tie-engraver.cc @@ -94,7 +94,8 @@ public: TRANSLATOR_DECLARATIONS (Tie_engraver); }; -Tie_engraver::Tie_engraver () +Tie_engraver::Tie_engraver (Context *c) + : Engraver (c) { event_ = 0; tie_column_ = 0; diff --git a/lily/tie-performer.cc b/lily/tie-performer.cc index e93b3e6b0c..1f95023eb6 100644 --- a/lily/tie-performer.cc +++ b/lily/tie-performer.cc @@ -56,7 +56,8 @@ public: TRANSLATOR_DECLARATIONS (Tie_performer); }; -Tie_performer::Tie_performer () +Tie_performer::Tie_performer (Context *c) + : Performer (c) { event_ = 0; } diff --git a/lily/time-signature-engraver.cc b/lily/time-signature-engraver.cc index d57b35bf6e..1f7a8d6fe3 100644 --- a/lily/time-signature-engraver.cc +++ b/lily/time-signature-engraver.cc @@ -53,7 +53,8 @@ Time_signature_engraver::derived_mark () const scm_gc_mark (time_cause_); } -Time_signature_engraver::Time_signature_engraver () +Time_signature_engraver::Time_signature_engraver (Context *c) + : Engraver (c) { time_signature_ = 0; time_cause_ = SCM_EOL; diff --git a/lily/time-signature-performer.cc b/lily/time-signature-performer.cc index 3a3bbd2ca3..75c3ef5d08 100644 --- a/lily/time-signature-performer.cc +++ b/lily/time-signature-performer.cc @@ -44,7 +44,8 @@ Time_signature_performer::derived_mark () const scm_gc_mark (prev_fraction_); } -Time_signature_performer::Time_signature_performer () +Time_signature_performer::Time_signature_performer (Context *c) + : Performer (c) { prev_fraction_ = SCM_BOOL_F; audio_ = 0; diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 4716eceb24..67c2ffeed1 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -145,7 +145,8 @@ Timing_translator::measure_length () const return Rational (1); } -Timing_translator::Timing_translator () +Timing_translator::Timing_translator (Context *c) + : Translator (c) { } diff --git a/lily/translator.cc b/lily/translator.cc index bdc55f0f05..112d4cdd5f 100644 --- a/lily/translator.cc +++ b/lily/translator.cc @@ -32,13 +32,6 @@ Translator::~Translator () { } -void -Translator::init () -{ - daddy_context_ = 0; - smobify_self (); -} - void Translator::process_music () { @@ -49,15 +42,16 @@ Translator::process_acknowledged () { } -Translator::Translator () +Translator::Translator (Context *c) + : daddy_context_ (c) { - init (); + smobify_self (); } Translator::Translator (Translator const &) : Smob () { - init (); + smobify_self (); } Moment diff --git a/lily/trill-spanner-engraver.cc b/lily/trill-spanner-engraver.cc index 6634b5ea43..ff4612ac66 100644 --- a/lily/trill-spanner-engraver.cc +++ b/lily/trill-spanner-engraver.cc @@ -55,7 +55,8 @@ private: void typeset_all (); }; -Trill_spanner_engraver::Trill_spanner_engraver () +Trill_spanner_engraver::Trill_spanner_engraver (Context *c) + : Engraver (c) { finished_ = 0; current_event_ = 0; diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 92e018aece..61f623c546 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -267,7 +267,8 @@ Tuplet_engraver::finalize () } } -Tuplet_engraver::Tuplet_engraver () +Tuplet_engraver::Tuplet_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/tweak-engraver.cc b/lily/tweak-engraver.cc index 5f97b1e4cb..ed66637abe 100644 --- a/lily/tweak-engraver.cc +++ b/lily/tweak-engraver.cc @@ -32,7 +32,8 @@ protected: void acknowledge_grob (Grob_info); }; -Tweak_engraver::Tweak_engraver () +Tweak_engraver::Tweak_engraver (Context *c) + : Engraver (c) { } diff --git a/lily/vaticana-ligature-engraver.cc b/lily/vaticana-ligature-engraver.cc index 6c34e9eb61..1785d4478b 100644 --- a/lily/vaticana-ligature-engraver.cc +++ b/lily/vaticana-ligature-engraver.cc @@ -84,7 +84,8 @@ protected: vector const &primitives); }; -Vaticana_ligature_engraver::Vaticana_ligature_engraver () +Vaticana_ligature_engraver::Vaticana_ligature_engraver (Context *c) + : Gregorian_ligature_engraver (c) { brew_ligature_primitive_proc = Vaticana_ligature::brew_ligature_primitive_proc; diff --git a/lily/vertical-align-engraver.cc b/lily/vertical-align-engraver.cc index 0226173a2e..921b35a471 100644 --- a/lily/vertical-align-engraver.cc +++ b/lily/vertical-align-engraver.cc @@ -71,7 +71,8 @@ ADD_TRANSLATOR (Vertical_align_engraver, "" ); -Vertical_align_engraver::Vertical_align_engraver () +Vertical_align_engraver::Vertical_align_engraver (Context *c) + : Engraver (c) { valign_ = 0; id_to_group_hashtab_ = SCM_EOL; diff --git a/lily/volta-engraver.cc b/lily/volta-engraver.cc index 2f95ac7ac1..8d6a16f1ee 100644 --- a/lily/volta-engraver.cc +++ b/lily/volta-engraver.cc @@ -62,7 +62,8 @@ Volta_engraver::derived_mark () const scm_gc_mark (start_string_); } -Volta_engraver::Volta_engraver () +Volta_engraver::Volta_engraver (Context *c) + : Engraver (c) { start_string_ = SCM_EOL; volta_bracket_ = 0;