]> git.donarmstrong.com Git - lilypond.git/commitdiff
try to avoid NaNs and infs in alignment and pure-height
authorJoe Neeman <joeneeman@gmail.com>
Sat, 7 Jul 2007 02:14:44 +0000 (12:14 +1000)
committerJoe Neeman <joeneeman@gmail.com>
Sat, 7 Jul 2007 02:14:44 +0000 (12:14 +1000)
lily/align-interface.cc
lily/grob.cc

index 4d885b7a38de0896773058fb10582b137315e13d..db71c32b8f2baa8f5adf9d858e5f747efed11552 100644 (file)
@@ -221,6 +221,9 @@ Align_interface::get_extents_aligned_translates (Grob *me,
          dy = down_skyline.distance (skylines[j][-stacking_dir]);
        }
 
+      if (isinf (dy)) /* if the skyline is empty, maybe max_height is infinity_f */
+       dy = 0.0;
+
       dy = max (0.0, dy + padding + extra_space / elems.size ());
       down_skyline.raise (-stacking_dir * dy);
       where += stacking_dir * dy;
index 495fe2437f97cbddabfb90712d08afbc9c6f3928..5962b9ff66c325eab4233c020aea626839f1e3bd 100644 (file)
@@ -433,7 +433,8 @@ Grob::pure_height (Grob *refp, int start, int end)
   if (!iv.is_empty () && is_number_pair (min_ext))
     iv.unite (ly_scm2interval (min_ext));
 
-  iv.translate (offset);
+  if (!iv.is_empty ())
+    iv.translate (offset);
   return iv;
 }