TagLib 1.9.1 crash using C++11

Stephen F. Booth me at sbooth.org
Fri Jun 5 02:02:59 UTC 2015


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?
>
> Please excuse the bump but I've had to retract a release for this segfault.
>
> On 31 May 2015 at 18:03, Ibrahim Sha'ath <ibrahimshaath at gmail.com> wrote:
>
>> Thanks Stephen. Unfortunately that had no further effect on the problem.
>>
>> Does the top of that stack look familiar to anyone who knows the codebase?
>>
>> On 31 May 2015 at 13:46, Stephen F. Booth <me at sbooth.org> wrote:
>>
>>> I experienced problems like this when my app and TagLib were compiled
>>> with different C++ standard libraries.  I'm not sure if it matters anymore
>>> on Yosemite but since you're using C++11 I would make sure you're passing
>>> -stdlib=libc++ to both build processes.
>>>
>>> Stephen
>>>
>>> On Sun, May 31, 2015 at 5:16 AM, Ibrahim Sha'ath <
>>> ibrahimshaath at gmail.com> wrote:
>>>
>>>> I have also tried modifying CMakeLists with
>>>> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
>>>> to ensure consistency of flags with my app build, but that had no
>>>> effect.
>>>>
>>>> Anyone have any ideas?
>>>>
>>>> On 30 May 2015 at 12:58, Ibrahim Sha'ath <ibrahimshaath at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi there,
>>>>>
>>>>> I have the following code to write to the Grouping field in an MP4
>>>>> file:
>>>>>
>>>>> TagLib::StringList sl(TagLib::String("data", TagLib::String::UTF8));
>>>>>
>>>>> mp4File->tag()->itemListMap().insert("\251grp", sl);
>>>>>
>>>>> mp4File->save();
>>>>>
>>>>>
>>>>> Where mp4file is a TagLib::MP4::File. This code was working fine but
>>>>> now crashes with a segfault; I've narrowed the change down to when I
>>>>> switched my project to C++11 to rid myself of Boost.
>>>>>
>>>>> The top of the crashed thread's stack (in OSX) reads as follows:
>>>>> 0 ... std::__1::__tree<std::__1::__value_type<TagLib::String,
>>>>> TagLib::MP4::Item>, std::__1::__map_value_compare<TagLib::String,
>>>>> std::__1::__value_type<TagLib::String, TagLib::MP4::Item>,
>>>>> std::__1::less<TagLib::String>, true>,
>>>>> std::__1::allocator<std::__1::__value_type<TagLib::String,
>>>>> TagLib::MP4::Item> >
>>>>> >::__insert_node_at(std::__1::__tree_node_base<void*>*,
>>>>> std::__1::__tree_node_base<void*>*&, std::__1::__tree_node_base<void*>*) +
>>>>> 88
>>>>> 1 ... 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&) + 205
>>>>> 2 ... TagLib::Map<TagLib::String,
>>>>> TagLib::MP4::Item>::insert(TagLib::String const&, TagLib::MP4::Item const&)
>>>>> + 71
>>>>> 3   ...
>>>>>
>>>>> Has anyone had a similar experience? Is this expected with C++11, or
>>>>> is there some way around it?
>>>>>
>>>>> Any help appreciated.
>>>>> Regards
>>>>> Ibrahim
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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/20150604/2fa2f48d/attachment.html>


More information about the taglib-devel mailing list