diff --git a/taglib/fileref.cpp b/taglib/fileref.cpp index b71d6571..46f3945a 100644 --- a/taglib/fileref.cpp +++ b/taglib/fileref.cpp @@ -518,3 +518,11 @@ void FileRef::parse(IOStream *stream, bool readAudioProperties, d->file = detectByContent(stream, readAudioProperties, audioPropertiesStyle); } + +FileRef::FileTypeResolver::~FileTypeResolver() +{ +} + +FileRef::StreamTypeResolver::~StreamTypeResolver() +{ +} diff --git a/taglib/fileref.h b/taglib/fileref.h index db23bbbb..dd4e61da 100644 --- a/taglib/fileref.h +++ b/taglib/fileref.h @@ -91,8 +91,12 @@ namespace TagLib { class TAGLIB_EXPORT FileTypeResolver { - TAGLIB_IGNORE_MISSING_DESTRUCTOR public: + /*! + * Destroys this FileTypeResolver instance. + */ + virtual ~FileTypeResolver() = 0; + /*! * This method must be overridden to provide an additional file type * resolver. If the resolver is able to determine the file type it should @@ -110,8 +114,12 @@ namespace TagLib { class TAGLIB_EXPORT StreamTypeResolver : public FileTypeResolver { - TAGLIB_IGNORE_MISSING_DESTRUCTOR public: + /*! + * Destroys this StreamTypeResolver instance. + */ + virtual ~StreamTypeResolver() = 0; + virtual File *createFileFromStream(IOStream *stream, bool readAudioProperties = true, AudioProperties::ReadStyle diff --git a/taglib/mpeg/id3v1/id3v1tag.cpp b/taglib/mpeg/id3v1/id3v1tag.cpp index bdf1b9a8..cfec2cb1 100644 --- a/taglib/mpeg/id3v1/id3v1tag.cpp +++ b/taglib/mpeg/id3v1/id3v1tag.cpp @@ -67,6 +67,10 @@ StringHandler::StringHandler() { } +StringHandler::~StringHandler() +{ +} + String ID3v1::StringHandler::parse(const ByteVector &data) const { return String(data, String::Latin1).stripWhiteSpace(); diff --git a/taglib/mpeg/id3v1/id3v1tag.h b/taglib/mpeg/id3v1/id3v1tag.h index acdda66c..bc2ed90e 100644 --- a/taglib/mpeg/id3v1/id3v1tag.h +++ b/taglib/mpeg/id3v1/id3v1tag.h @@ -59,11 +59,11 @@ namespace TagLib { class TAGLIB_EXPORT StringHandler { - TAGLIB_IGNORE_MISSING_DESTRUCTOR public: - // BIC: Add virtual destructor. StringHandler(); + virtual ~StringHandler(); + /*! * Decode a string from \a data. The default implementation assumes that * \a data is an ISO-8859-1 (Latin1) character array. diff --git a/taglib/toolkit/taglib.h b/taglib/toolkit/taglib.h index a9d2462d..d23c25d4 100644 --- a/taglib/toolkit/taglib.h +++ b/taglib/toolkit/taglib.h @@ -32,12 +32,6 @@ #define TAGLIB_MINOR_VERSION 0 #define TAGLIB_PATCH_VERSION 0 -#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 1)) || defined(__clang__) -#define TAGLIB_IGNORE_MISSING_DESTRUCTOR _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") -#else -#define TAGLIB_IGNORE_MISSING_DESTRUCTOR -#endif - #if (defined(_MSC_VER) && _MSC_VER >= 1600) #define TAGLIB_CONSTRUCT_BITSET(x) static_cast(x) #else