I found the following curious usage.  Does anyone think it is wrong.The code
is taking and Element and casting it to Chord* before checking its element
type.I would think the static_cast<chord*> and the if ( ... chord-.tupe() != 
Element::Type::CHORD) continueshould be reversed?  Am I confused?
void Score::createPlayEvents()      {      int etrack = nstaves() * VOICES;     
for (int track = 0; track < etrack; ++track) {            int mn=0;           
for (Measure* m = firstMeasure(); m; mn++, m = m->nextMeasure()) {              
   
// skip linked staves, except primary                  if
(!m->score()->staff(track / VOICES)->primaryStaff())                       
continue;                  const Segment::Type st =
Segment::Type::ChordRest;                  for (Segment* seg = m->first(st);
seg; seg = seg->next(st)) {                        Chord* chord =
static_cast<Chord*>(seg->element(track)); // curious line order                 
      
if (chord == 0 || chord->type() != Element::Type::CHORD)  // curious line
order                              continue;                       
createPlayEvents(chord);                        }                  }           
}      }




--
View this message in context: 
http://dev-list.musescore.org/funny-use-of-static-cast-tp7579352.html
Sent from the MuseScore Developer mailing list archive at Nabble.com.

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Mscore-developer mailing list
Mscore-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mscore-developer

Reply via email to