Skip to content

extractor: Fix build with TagLib due to implicit type conversion.

Michael Pyne requested to merge work/mpyne/fix-taglib-build into master

The TagLib::Tag* that gets passed to extractId3Cover() needs to be a TagLib::ID3v2::Tag*. Not sure when this stopped building or what type signatures changed, but since in this code path we know it really is an ID3 tag, we just static_cast it downwards.

Addresses a build failure on master I ran into today (now that TagLib is built properly):

/kdesrc/src/kf6/frameworks/kfilemetadata/src/extractors/taglibextractor.cpp: In member function ‘virtual void KFileMetaData::TagLibExtractor::extract(KFileMetaData::ExtractionResult*)’:
/kdesrc/src/kf6/frameworks/kfilemetadata/src/extractors/taglibextractor.cpp:586:62: error: invalid conversion from ‘TagLib::Tag*’ to ‘const TagLib::ID3v2::Tag*’ [-fpermissive]
  586 |                 result->addImageData(extractId3Cover(file.tag(), imageTypes));
      |                                                      ~~~~~~~~^~
      |                                                              |
      |                                                              TagLib::Tag*
/kdesrc/src/kf6/frameworks/kfilemetadata/src/extractors/taglibextractor.cpp:351:43: note:   initializing argument 1 of ‘QMap<KFileMetaData::EmbeddedImageData::ImageType, QByteArray> {anonymous}::extractId3Cover(const TagLib::ID3v2::Tag*, KFileMetaData::EmbeddedImageData::ImageTypes)’
  351 | extractId3Cover(const TagLib::ID3v2::Tag* Id3Tags,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/kdesrc/src/kf6/frameworks/kfilemetadata/src/extractors/taglibextractor.cpp:587:40: error: invalid conversion from ‘TagLib::Tag*’ to ‘TagLib::ID3v2::Tag*’ [-fpermissive]
  587 |                 extractId3Tags(file.tag(), result);
      |                                ~~~~~~~~^~
      |                                        |
      |                                        TagLib::Tag*
/kdesrc/src/kf6/frameworks/kfilemetadata/src/extractors/taglibextractor.cpp:249:41: note:   initializing argument 1 of ‘void {anonymous}::extractId3Tags(TagLib::ID3v2::Tag*, KFileMetaData::ExtractionResult*)’
  249 | void extractId3Tags(TagLib::ID3v2::Tag* Id3Tags, ExtractionResult* result)
      |                     ~~~~~~~~~~~~~~~~~~~~^~~~~~~

Merge request reports