From d1c8e78eecd736dbc35469c7d6a6fca85fad9152 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sat, 25 Jun 2016 23:01:25 +0200 Subject: [PATCH] Don't overload Slur_engraver::listen_slur Having two overloaded variants of Slur_engraver::listen_slur leads to problems with ADD_LISTENER template resolution at least in some versions of g++. So the two-argument version is renamed to listen_note_slur. --- lily/include/slur-engraver.hh | 8 ++++---- lily/slur-engraver.cc | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lily/include/slur-engraver.hh b/lily/include/slur-engraver.hh index 24e715dfa4..1f057069d1 100644 --- a/lily/include/slur-engraver.hh +++ b/lily/include/slur-engraver.hh @@ -58,10 +58,10 @@ protected: void acknowledge_tuplet_number (Grob_info); void listen_note (Stream_event *ev); - void listen_slur (Stream_event *ev, Stream_event *note); - // You'd think the following is the same as defaulting `note' to 0, - // but template resolution for trampolines disagrees. Huh. - void listen_slur (Stream_event *ev) { listen_slur (ev, 0); } + // A slur on an in-chord note is not actually announced as an event + // but rather produced by the note listener. + void listen_note_slur (Stream_event *ev, Stream_event *note); + void listen_slur (Stream_event *ev) { listen_note_slur (ev, 0); } void acknowledge_extra_object (Grob_info); void stop_translation_timestep (); void process_music (); diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index c0dedcf0d4..ff9065ca10 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -111,7 +111,7 @@ Slur_engraver::derived_mark () const } void -Slur_engraver::listen_slur (Stream_event *ev, Stream_event *note) +Slur_engraver::listen_note_slur (Stream_event *ev, Stream_event *note) { Direction d = to_dir (ev->get_property ("span-direction")); if (d == START) @@ -131,7 +131,7 @@ Slur_engraver::listen_note (Stream_event *ev) { Stream_event *art = unsmob (scm_car (arts)); if (art->in_event_class (event_symbol ())) - listen_slur (art, ev); + listen_note_slur (art, ev); } } -- 2.39.2