From f58161511050ac6c060d28e75dcd5c5a3af7279c Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Fri, 9 Jul 2021 12:47:36 -0700 Subject: [PATCH] clang-tidy: replace static_cast with dynamic_cast (#1021) * clang-tidy: replace static_cast with dynamic_cast Found with cppcoreguidelines-pro-type-static-cast-downcast Signed-off-by: Rosen Penev --- taglib/mpeg/id3v2/id3v2framefactory.cpp | 7 ++++--- taglib/mpeg/id3v2/id3v2tag.cpp | 9 ++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/taglib/mpeg/id3v2/id3v2framefactory.cpp b/taglib/mpeg/id3v2/id3v2framefactory.cpp index 1173cff8..f59af52a 100644 --- a/taglib/mpeg/id3v2/id3v2framefactory.cpp +++ b/taglib/mpeg/id3v2/id3v2framefactory.cpp @@ -340,19 +340,20 @@ void FrameFactory::rebuildAggregateFrames(ID3v2::Tag *tag) const { TextIdentificationFrame *tdrc = dynamic_cast(tag->frameList("TDRC").front()); - UnknownFrame *tdat = static_cast(tag->frameList("TDAT").front()); + UnknownFrame *tdat = dynamic_cast(tag->frameList("TDAT").front()); if(tdrc && tdrc->fieldList().size() == 1 && tdrc->fieldList().front().size() == 4 && + tdat && tdat->data().size() >= 5) { String date(tdat->data().mid(1), String::Type(tdat->data()[0])); if(date.length() == 4) { tdrc->setText(tdrc->toString() + '-' + date.substr(2, 2) + '-' + date.substr(0, 2)); if(tag->frameList("TIME").size() == 1) { - UnknownFrame *timeframe = static_cast(tag->frameList("TIME").front()); - if(timeframe->data().size() >= 5) { + UnknownFrame *timeframe = dynamic_cast(tag->frameList("TIME").front()); + if(timeframe && timeframe->data().size() >= 5) { String time(timeframe->data().mid(1), String::Type(timeframe->data()[0])); if(time.length() == 4) { tdrc->setText(tdrc->toString() + 'T' + time.substr(0, 2) + ':' + time.substr(2, 2)); diff --git a/taglib/mpeg/id3v2/id3v2tag.cpp b/taglib/mpeg/id3v2/id3v2tag.cpp index aa37bda7..156c6d5e 100644 --- a/taglib/mpeg/id3v2/id3v2tag.cpp +++ b/taglib/mpeg/id3v2/id3v2tag.cpp @@ -185,8 +185,10 @@ String ID3v2::Tag::genre() const // should be separated by " / " instead of " ". For the moment to keep // the behavior the same as released versions it is being left with " ". - if(d->frameListMap["TCON"].isEmpty() || - !dynamic_cast(d->frameListMap["TCON"].front())) + const FrameList &tconFrames = d->frameListMap["TCON"]; + TextIdentificationFrame *f; + if(tconFrames.isEmpty() || + !(f = dynamic_cast(tconFrames.front()))) { return String(); } @@ -197,9 +199,6 @@ String ID3v2::Tag::genre() const // appended to the genre string. Multiple fields will be appended as the // string is built. - TextIdentificationFrame *f = static_cast( - d->frameListMap["TCON"].front()); - StringList fields = f->fieldList(); StringList genres;