From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Wed, 17 Jan 2007 15:30:36 +0000 (+0100)
Subject: Do accidental suicide in print function.
X-Git-Tag: release/2.11.12-1
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=10dc620c534c0a9bc8733168e70060cd02c06eaa;p=lilypond.git

Do accidental suicide in print function.

This fixes possible bug when ly:accidental-interface::print gets
called before ly:accidental-interface::after-line-breaking.
---

diff --git a/lily/accidental.cc b/lily/accidental.cc
index cf47ebcbe1..46db4f4f2f 100644
--- a/lily/accidental.cc
+++ b/lily/accidental.cc
@@ -31,24 +31,6 @@ parenthesize (Grob *me, Stencil m)
   return m;
 }
 
-/*
-  Hmm. Need separate callback, or perhaps #'live bool property.
- */
-MAKE_SCHEME_CALLBACK (Accidental_interface, after_line_breaking, 1);
-SCM
-Accidental_interface::after_line_breaking (SCM smob)
-{
-  Grob *me = unsmob_grob (smob);
-  Grob *tie = unsmob_grob (me->get_object ("tie"));
-
-  if (tie && !tie->original ()
-      && !to_boolean (me->get_property ("forced")))
-    {
-      me->suicide ();
-    }
- 
-  return SCM_UNSPECIFIED;
-}
 
 /* This callback exists for the sole purpose of allowing us to override
    its pure equivalent to accidental-interface::pure-height */
@@ -151,7 +133,15 @@ SCM
 Accidental_interface::print (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
+  Grob *tie = unsmob_grob (me->get_object ("tie"));
 
+  if (tie && !tie->original ()
+      && !to_boolean (me->get_property ("forced")))
+    {
+      me->suicide ();
+      return SCM_EOL;
+    }
+  
   Font_metric *fm = Font_interface::get_default_font (me);
 
   SCM alist = me->get_property ("glyph-name-alist");
diff --git a/lily/include/accidental-interface.hh b/lily/include/accidental-interface.hh
index 534ac706b5..a90680537f 100644
--- a/lily/include/accidental-interface.hh
+++ b/lily/include/accidental-interface.hh
@@ -20,7 +20,6 @@ class Accidental_interface
 public:
   DECLARE_SCHEME_CALLBACK (print, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_stencils, (SCM));
-  DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM));
   DECLARE_SCHEME_CALLBACK (height, (SCM));
   DECLARE_SCHEME_CALLBACK (pure_height, (SCM, SCM, SCM));
   
diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm
index 2130dab4be..0dc2235031 100644
--- a/scm/define-grobs.scm
+++ b/scm/define-grobs.scm
@@ -24,8 +24,6 @@
 	(alteration . ,accidental-interface::calc-alteration) 
 	(stencil . ,ly:accidental-interface::print)
 	(Y-extent . ,ly:accidental-interface::height)
-	(after-line-breaking
-	 . ,ly:accidental-interface::after-line-breaking)
 	(meta . ((class . Item)
 		 (interfaces . (accidental-interface
 				font-interface))))))
@@ -37,8 +35,6 @@
 	(alteration . ,accidental-interface::calc-alteration) 
 	(stencil . ,ly:accidental-interface::print)
 	(Y-extent . ,ly:accidental-interface::height)
-	(after-line-breaking
-	 . ,ly:accidental-interface::after-line-breaking)
 	(meta . ((class . Item)
 		 (interfaces . (accidental-interface
 				font-interface))))))
@@ -125,7 +121,6 @@
 	(stencil . ,ly:accidental-interface::print)
 	(Y-extent . ,ly:accidental-interface::height)
 	(glyph-name-alist . ,standard-alteration-glyph-name-alist)	
-	(after-line-breaking . ,ly:accidental-interface::after-line-breaking)
 	(side-axis . ,X)
 	(meta . ((class . Item)
 		 (interfaces . (