]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/local-key-engraver.cc
release: 1.1.0
[lilypond.git] / lily / local-key-engraver.cc
index c6a3a0718946faf0113bf6daa1869bd7fa7f19ee..54df397c45339fde06195a0472f54f8ce255b008 100644 (file)
@@ -40,7 +40,7 @@ Local_key_engraver::do_creation_processing ()
     }
   else
     {
-      key_C_ = &((Key_engraver*)result->access_Engraver  ())->key_;
+      key_C_ = &((Key_engraver*)dynamic_cast <Engraver *> (result))->key_;
       local_key_ = *key_C_;
     }
 }
@@ -97,24 +97,22 @@ void
 Local_key_engraver::acknowledge_element (Score_element_info info)
 {    
   Score_element * elem_l = info.elem_l_;
-  Item * item_l = elem_l->access_Item();
+  Item * item_l = dynamic_cast <Item *> (elem_l);
 
-  Note_req * note_l = (info.req_l_->access_Musical_req ())
-    ? info.req_l_->access_Musical_req ()->access_Note_req () : 0;
+  Note_req * note_l =  dynamic_cast <Note_req *> (info.req_l_);
 
   if (note_l &&  item_l && item_l->is_type_b (Note_head::static_name ()))
     {
       mel_l_arr_.push (note_l);
       support_l_arr_.push (item_l);
     }
-  else if (info.req_l_->access_Command_req ()
-          && info.req_l_->access_Command_req ()->access_Key_change_req () && key_C_) 
+  else if (dynamic_cast <Key_change_req*> (info.req_l_))
     {
       local_key_ = *key_C_;
     }
   else if (elem_l->is_type_b (Tie::static_name ())) 
     {
-      Tie * tie_l = (Tie*)elem_l->access_Spanner ();
+      Tie * tie_l = (Tie*)dynamic_cast <Spanner *> (elem_l);
       if (tie_l->same_pitch_b_)
        tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
     }