]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/bar-column-engraver.cc
release: 1.1.1
[lilypond.git] / lily / bar-column-engraver.cc
index 2f1d760fa512bcf5fd263bf6194319a4128678af..230a0f3ea2a39f374bb81ce7ce29ff7732812a31 100644 (file)
@@ -12,6 +12,7 @@
 #include "request.hh"
 #include "script.hh"
 #include "bar.hh"
+#include <typeinfo>
 
 Bar_column_engraver::Bar_column_engraver()
 {
@@ -52,25 +53,27 @@ Bar_column_engraver::create_column ()
 void
 Bar_column_engraver::acknowledge_element (Score_element_info info)
 {
-  Item * it = info.elem_l_->access_Item ();
+  Item * it = dynamic_cast <Item *> (info.elem_l_);
   if (!it)
     return;
-
-  if (it->is_type_b (Script::static_name())
+  Script *s = dynamic_cast<Script*> (it);
+  Bar *b = dynamic_cast<Bar*> (it);
+  if (s
       && it->breakable_b_
       && info.origin_grav_l_arr_.size() == 1
       && it->break_priority_i_ == break_priority_i_)
     {
       create_column ();
-      barcol_p_->add_script ((Script*)it);
+      barcol_p_->add_script (s);
     }
   else if (info.origin_grav_l_arr_.size() == 1
           && it->break_priority_i_ == break_priority_i_
-          && it->breakable_b_ 
-          && it->is_type_b (Bar::static_name()))
+          && it->breakable_b_
+          &&b)
+
     {
       create_column ();
-      barcol_p_->set_bar ( (Bar*)it);
+      barcol_p_->set_bar (b);
     }
 }