Thread safety for ID3v1 genres
Lukáš Lalinský
lalinsky at gmail.com
Mon May 2 21:07:45 CEST 2011
2011/5/2 Lukáš Lalinský <lalinsky at gmail.com>:
> On Mon, May 2, 2011 at 1:27 PM, Stephen F. Booth <me at sbooth.org> wrote:
>> I still would suggest the patch above, because no C++ objects are
>> being created at static initialization time.
>
> I have no problem with the patch, the cost of creating the genre
> string objects is nothing compared to the rest of the tag parsing.
Thinking a bit more about it, I'd prefer something like this (because
of ID3v1::genreIndex):
diff --git a/taglib/mpeg/id3v1/id3v1genres.cpp
b/taglib/mpeg/id3v1/id3v1genres.cpp
index 7893c72..eba4c52 100644
--- a/taglib/mpeg/id3v1/id3v1genres.cpp
+++ b/taglib/mpeg/id3v1/id3v1genres.cpp
@@ -207,7 +207,7 @@ ID3v1::GenreMap ID3v1::genreMap()
String ID3v1::genre(int i)
{
if(i >= 0 && i < genresSize)
- return genres[i];
+ return genres[i] + String::null; // always make a copy
return String::null;
}
Lukas
More information about the taglib-devel
mailing list