TagLibAmalgam: A new way to use TagLib

Manfred Schwind lists at mani.de
Thu Apr 19 13:02:32 UTC 2012

> You can try the new amalgamation in the 'develop' branch of TagLibAmalgam:

Works for me! :-)

When compiling the amalgamated file (with clang) I get some (but few) warnings.
But that's not the fault of the amalgamation, it's in taglib. Maybe these warnings can be fixed in taglib?

1.) File "tlist.tcc" in "template <class TP> class List<T>::ListPrivate<TP *>", method "clear()", line "delete *it;":
Delete called on 'const TagLib::FileRef::FileTypeResolver' that is abstract but has non-virtual destructor

2.) File "id3v1tag.cpp" in method "void ID3v1::Tag::setStringHandler(const StringHandler *handler)", line "delete TagPrivate::stringHandler;":
Delete called on 'const ID3v1::StringHandler' that has virtual functions but non-virtual destructor

3.) File "tbytevectorstream.cpp" in method "void ByteVectorStream::writeBlock(const ByteVector &data)", line "if(d->position + size > length()) {":
Comparison of integers of different signs: 'unsigned long' and 'long'

4.) In file "unicode.cpp" at the very beginning:
'false' macro redefined
'true' macro redefined

I think 3.) and 4.) are really just warnings, but are unlikely to make any trouble, but the non-virtual destructors can be a real problem, not?

> If you're happy with these changes then after the fixes for warnings
> are merged in the official repository, I will update all of my
> repositories fully (the tool, the template, and the amalgamation).

Looking for it, thanx!


More information about the taglib-devel mailing list