Go to file
Urs Fleisch 51d63ab285 Detach list when setAutoDelete() is called
When calling setAutoDelete() on the implicitly shared copy of a list,
also auto-deletion of the original container was modified because
it was not detached. On the other hand, detach() was called by some
methods getting an Iterator parameter, which can lead to modification
of other implicitly shared copies but not the object is was called on.
This happens when the method is called on a not-already-detached
container, which is normally not the case because the container is
detached when the iterator is taken (e.g. calling begin()).
In such methods detach() cannot be called, and the client must
make sure that the iterator is taken after making an implicit copy.
This will NOT work:

List<int> l1 = { 1 };
auto it = l1.begin();
List<int> l2 = l1;
l1.erase(it);

This will modify both l1 and l2. The second and the third lines
must be swapped so that l1.begin() will detach l1 from l2.
2023-12-02 08:03:14 +01:00
.github GitHub Actions: Update Homebrew utfcpp to 4.0.2 (#1171) 2023-11-05 14:39:33 +01:00
3rdparty add utf8cpp git submodule (#1142) 2023-09-16 08:41:01 +02:00
bindings Export CMake configuration 2023-11-23 16:40:40 +01:00
cmake/modules Update FindCppUnit.cmake (#1076) 2022-12-21 14:14:35 +01:00
doc Fix Doxygen API documentation 2022-10-24 07:06:23 +02:00
examples tagreader: Fix displaying of seconds in length, UTF-8 for ostream 2023-10-27 09:46:54 +02:00
taglib Detach list when setAutoDelete() is called 2023-12-02 08:03:14 +01:00
tests Detach list when setAutoDelete() is called 2023-12-02 08:03:14 +01:00
.astylerc Add astylerc 2015-05-18 11:31:55 +02:00
.editorconfig Proofreading (#1155) 2023-10-08 05:58:33 +02:00
.gitignore Version 1.13.1 2023-07-01 07:43:27 +02:00
.gitmodules add utf8cpp git submodule (#1142) 2023-09-16 08:41:01 +02:00
AUTHORS Update documentation for version 1.12.0 2021-02-15 10:37:11 +01:00
cmake_uninstall.cmake.in added uninstall target 2011-06-26 21:58:51 +02:00
CMakeLists.txt Export CMake configuration 2023-11-23 16:40:40 +01:00
config.h.cmake Various cleanups (#1099) 2023-08-05 10:31:46 -05:00
ConfigureChecks.cmake Fix undefined PLATFORM_WINRT CMake option (#870) 2023-09-30 14:34:58 +02:00
COPYING.LGPL Different LGPL version than was referenced in headers 2010-09-22 00:07:26 +00:00
COPYING.MPL Got permission from all (non-trivial) contributors to dual license under the MPL. 2007-10-10 18:22:58 +00:00
Doxyfile.cmake Fix Doxygen API documentation 2022-10-24 07:06:23 +02:00
INSTALL.md Proofreading (#1155) 2023-10-08 05:58:33 +02:00
NEWS Proofreading (#1155) 2023-10-08 05:58:33 +02:00
README.md Proofreading (#1155) 2023-10-08 05:58:33 +02:00
taglib-config.cmake Do not use tabs in CMake files 2023-09-30 15:12:51 +02:00
taglib-config.cmake.in Export CMake configuration 2023-11-23 16:40:40 +01:00
taglib-config.cmd.cmake Do not use tabs in CMake files 2023-09-30 15:12:51 +02:00
taglib.pc.cmake cmake: support both relative and absolute paths for pc files (#1152) 2023-09-30 14:25:00 +02:00

TagLib

Build Status

TagLib Audio Metadata Library

https://taglib.org/

TagLib is a library for reading and editing the metadata of several popular audio formats. Currently, it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4, APE, and ASF files.

TagLib is distributed under the GNU Lesser General Public License (LGPL) and Mozilla Public License (MPL). Essentially that means that it may be used in proprietary applications, but if changes are made to TagLib they must be contributed back to the project. Please review the licenses if you are considering using TagLib in your project.