]> git.donarmstrong.com Git - lilypond.git/commitdiff
Don't overload Slur_engraver::listen_slur
authorDavid Kastrup <dak@gnu.org>
Sat, 25 Jun 2016 21:01:25 +0000 (23:01 +0200)
committerDavid Kastrup <dak@gnu.org>
Sat, 25 Jun 2016 21:08:22 +0000 (23:08 +0200)
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
lily/slur-engraver.cc

index 24e715dfa448b61564e5936284624a0058bf4df8..1f057069d11d2fe8783b58eb575270a5df4738d3 100644 (file)
@@ -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 ();
index c0dedcf0d44c93585c4a2ae3d6f1b01051f5e3c2..ff9065ca10ec9a8e8002afb86c82a353148cd9cf 100644 (file)
@@ -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<Stream_event> (scm_car (arts));
       if (art->in_event_class (event_symbol ()))
-        listen_slur (art, ev);
+        listen_note_slur (art, ev);
     }
 }