]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-head-line-engraver.cc
Fix potential NULL dereference in Staff_symbol::on_line().
[lilypond.git] / lily / note-head-line-engraver.cc
index 35698563a752877afb5d79237d6bed0234a63c85..a499905d623181e9d81573c1e99f701deb3165da 100644 (file)
@@ -54,20 +54,19 @@ void
 Note_head_line_engraver::acknowledge_rhythmic_head (Grob_info info)
 {
   head_ = info.grob ();
-  if (to_boolean (get_property ("followVoice")))
+  Context *tr = context ();
+
+  while (tr && !tr->is_alias (ly_symbol2scm ("Staff")))
+    tr = tr->get_parent_context ();
+
+  if (tr
+      && tr->is_alias (ly_symbol2scm ("Staff")) && tr != last_staff_
+      && to_boolean (get_property ("followVoice")))
     {
-      Context *tr = context ();
-      while (tr && !tr->is_alias (ly_symbol2scm ("Staff")))
-       tr = tr->get_parent_context ();
-
-      if (tr
-         && tr->is_alias (ly_symbol2scm ("Staff")) && tr != last_staff_)
-       {
-         if (last_head_)
-           follow_ = true;
-         last_staff_ = tr;
-       }
+      if (last_head_)
+        follow_ = true;
     }
+  last_staff_ = tr;
 }
 
 void
@@ -104,9 +103,9 @@ Note_head_line_engraver::stop_translation_timestep ()
 ADD_ACKNOWLEDGER (Note_head_line_engraver, rhythmic_head);
 ADD_TRANSLATOR (Note_head_line_engraver,
                /* doc */
-               "Engrave a line between two note heads, for example a "
-               "glissando.  If @code{followVoice} is set, staff switches "
-               "also generate a line.",
+               "Engrave a line between two note heads, for example a"
+               " glissando.  If @code{followVoice} is set, staff switches"
+               " also generate a line.",
 
                /* create */
                "Glissando "