From 91c6fc1cb6950a316336a242c6e971e099df8c80 Mon Sep 17 00:00:00 2001
From: Joe Neeman <joeneeman@gmail.com>
Date: Sat, 28 Jul 2007 13:00:14 +1000
Subject: [PATCH] Check for cross-staff also in adjacent_pure_heights. Fixes
 cyclic dependencies with cross-staff beams.

---
 lily/axis-group-interface.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc
index 3e9450c846..4d280ac480 100644
--- a/lily/axis-group-interface.cc
+++ b/lily/axis-group-interface.cc
@@ -90,6 +90,9 @@ Axis_group_interface::cached_pure_height (Grob *me, int start, int end)
 
   SCM extents = me->get_property ("adjacent-pure-heights");
 
+  if (!scm_is_vector (extents))
+    return Interval (0, 0);
+
   Interval ext;
   for (vsize i = 0; i + 1 < breaks.size (); i++)
     {
@@ -131,7 +134,8 @@ Axis_group_interface::adjacent_pure_heights (SCM smob)
 	  Item *it = dynamic_cast<Item*> (items[j]);
 	  int rank = it->get_column ()->get_rank ();
 
-	  if (rank <= end && it->pure_is_visible (start, end))
+	  if (rank <= end && it->pure_is_visible (start, end)
+	      && !to_boolean (it->get_property ("cross-staff")))
 	    {
 	      Interval dims = items[j]->pure_height (common, start, end);
 	      if (!dims.is_empty ())
-- 
2.39.5