Clef *ScoreOrStaffDefAttrInterface::GetClefCopy() const { // we should not call it without having checked if a clef is set if (!m_clef) return NULL; Clef *copy = NULL; Clef *current_clef = dynamic_cast<Clef*>(m_clef); if (current_clef) { copy = new Clef(*current_clef); } else { ClefAttr *current_attr = dynamic_cast<ClefAttr*>(m_clef); copy = new Clef(current_attr); } assert(copy); copy->SetScoreOrStaffDefAttr(true); return copy; }