TagLib 1.9.1 crash using C++11

Ibrahim Sha'ath ibrahimshaath at gmail.com
Fri Jun 19 17:45:33 UTC 2015


Unfortunately, that did not prevent the crash, though it did shorten the
stack:

0 ... std::__1::map<TagLib::String, TagLib::MP4::Item,
std::__1::less<TagLib::String>,
std::__1::allocator<std::__1::pair<TagLib::String const, TagLib::MP4::Item>
> >::operator[](TagLib::String const&) + 211
1 ... Mp4FileMetadata::setGrouping(QString const&) + 195

As it turned out I had already implemented this change in almost every
similar method in my app, but not that one! So thanks for pointing it out.
I've also tried using a TagLib::String as the map key rather than just the
C-string, but to no avail. I didn't notice the MP4::Tag::item property
implementation in master, but I'll take another look.

By any chance does the shorter stack clarify anything?

Thanks again.

On 19 June 2015 at 14:11, Ibrahim Sha'ath <ibrahimshaath at gmail.com> wrote:

> Festus, thank you very much. That looks spot on. Let me try it out when I
> get home.
>
> On 19 June 2015 at 01:55, Festus Hagen <festushagenlists at yahoo.com> wrote:
>
>> Hi,
>>
>> The following particulate from your stack trace shows that the second
>> argument to insert() is a TagLib::MP4::Item not a TagLib::StringList ...
>> > insert(TagLib::String const&, TagLib::MP4::Item const&)
>>
>> However, I did wrap your sample code with the rest of the necessities and
>> it tests fine using GCC c++11 on Windows, FreeBSD and OS X.
>>
>> I shall try CLang when it's done building ...
>>
>> Might I suggest a slight code change:
>> mp4File->tag()->itemListMap().insert("\251grp", TagLib::MP4::Item(sl));
>>
>> TagLib master has new accessors MP4::Tag::item(const String &key) and
>> MP4::Tag::setItem(const String &key, const Item &value) for this in the
>> next release.
>>
>> -Enjoy
>> : )_~
>> ________________________________
>> From: Ibrahim Sha'ath <ibrahimshaath at gmail.com>
>> To: taglib-devel at kde.org
>> Sent: Thursday, June 11, 2015 2:11 PM
>> Subject: Re: TagLib 1.9.1 crash using C++11
>>
>>
>>
>> Hmmm. taglib2 didn't work either. A simpler stack trace, but looks like
>> the same crash essentially:
>>
>> 0 ... 0x0000000108214283 std::__1::map<TagLib::String, TagLib::MP4::Item,
>> std::__1::less<TagLib::String>,
>> std::__1::allocator<std::__1::pair<TagLib::String const, TagLib::MP4::Item>
>> > >::operator[](TagLib::String const&) + 211
>> 1 ... 0x00000001082132f1 TagLib::Map<TagLib::String,
>> TagLib::MP4::Item>::insert(TagLib::String const&, TagLib::MP4::Item const&)
>> + 97
>>
>> Is anyone successfully using the itemListMap with C++11? I can't read
>> from it either, though that doesn't crash.
>>
>>
>>
>>
>>
>> On 11 June 2015 at 18:33, Ibrahim Sha'ath <ibrahimshaath at gmail.com>
>> wrote:
>>
>> Sadly, current master didn't improve matters, so I imagine neither will
>> that specific tag.
>> >I'll try out the v2 branch.
>> >
>> >
>> >On 5 June 2015 at 09:36, Ibrahim Sha'ath <ibrahimshaath at gmail.com>
>> wrote:
>> >
>> >Excellent Rob, cheers; I'll definitely check that out.
>> >>
>> >>
>> >>Your email ended up in spam for some reason.
>> >>
>> >>
>> >>On 5 June 2015 at 09:03, Rob Arnold <rob at loci.net> wrote:
>> >>
>> >>Same, but with master (specifically v1.9.1-197-g62ab41f), so perhaps a
>> little closer to 1.9.1 than the taglib2 branch
>> >>>On OS X 10.10 with Clang, C++11 and 14 options turned on.
>> >>>My code uses StringList, File:save() and tag(), but doesn’t directly
>> use itemListMap()
>> >>>
>> >>>
>> >>>On Jun 4, 2015, at 7:02 PM, Stephen F. Booth <me at sbooth.org> wrote:
>> >>>>
>> >>>>I've used TagLib and C++11 successfully together, however I used the
>> taglib2 branch and not the 1.9.1 release.  Some of my classes using TagLib
>> are at https://github.com/sbooth/SFBAudioEngine/tree/master/Metadata if
>> you'd like to take a look.
>> >>>>
>> >>>>
>> >>>>Stephen
>> >>>>
>> >>>>
>> >>>>On Wed, Jun 3, 2015 at 8:45 AM, Ibrahim Sha'ath <
>> ibrahimshaath at gmail.com> wrote:
>> >>>>
>> >>>>If no-one has any idea about this issue specifically, has anyone
>> successfully used C++11 for a TagLib 1.9.1 project?
>> >>>
>> >>>_______________________________________________
>> >>>taglib-devel mailing list
>> >>>taglib-devel at kde.org
>> >>>https://mail.kde.org/mailman/listinfo/taglib-devel
>> >>>
>> >>>
>> >>
>> >
>>
>>
>> _______________________________________________
>> taglib-devel mailing list
>> taglib-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/taglib-devel
>> _______________________________________________
>> taglib-devel mailing list
>> taglib-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/taglib-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/taglib-devel/attachments/20150619/3f1e43f3/attachment.html>


More information about the taglib-devel mailing list