]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/pure-from-neighbor-interface.cc
Issue 5167/6: Changes: show \markup xxx = ... \etc assignments
[lilypond.git] / lily / pure-from-neighbor-interface.cc
index ce202bcf82a64b397e5f220b50986aab60ba103d..745c23dbec0d982ab59e1d5d3aec275d0ae86bcd 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011--2012 Mike Solomon <mike@apollinemike.com>
+  Copyright (C) 2011--2015 Mike Solomon <mike@mikesolomon.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@ MAKE_SCHEME_CALLBACK (Pure_from_neighbor_interface, calc_pure_relevant_grobs, 1)
 SCM
 Pure_from_neighbor_interface::calc_pure_relevant_grobs (SCM smob)
 {
-  Grob *me = unsmob_grob (smob);
+  Grob *me = unsmob<Grob> (smob);
   extract_grob_set ((me->original () && me->original ()->is_live ()
                      ? me->original ()
                      : me),
@@ -41,20 +41,15 @@ Pure_from_neighbor_interface::calc_pure_relevant_grobs (SCM smob)
   vector<Grob *> new_elts;
   new_elts.insert (new_elts.end (), elts.begin (), elts.end ());
 
-  SCM neighbors_scm = me->get_object ("neighbors");
-  if (Grob_array::unsmob (neighbors_scm))
-    {
-      vector<Grob *> &arr
-        = unsmob_grob_array (neighbors_scm)->array_reference ();
-      arr = new_elts;
-    }
+  if (Grob_array *a = unsmob<Grob_array> (me->get_object ("neighbors")))
+    a->set_array (new_elts);
 
   return Axis_group_interface::internal_calc_pure_relevant_grobs (me, "neighbors");
 }
 
 ADD_INTERFACE (Pure_from_neighbor_interface,
-               "A collection of routines to allow for objects' pure"
-               "heights and heights to be calculated based on the"
+               "A collection of routines to allow for objects' pure "
+               "heights and heights to be calculated based on the "
                "heights of the objects' neighbors.",
 
                /* properties */