Boost logo

Boost :

Subject: Re: [boost] [1.37.0][serialization] Assertion failed at libs/serialization/src/extended_type_info.cpp:92
From: Gennaro Prota (gennaro.prota_at_[hidden])
Date: 2008-10-21 11:37:03


Hartmut Kaiser wrote:
>> Anything I can do about this?
>> What does this assertion mean?
>>
>> My setup: Linux 64Bit, gcc 4.2.4, serialization is used for polymorphic
>> objects loaded from different shared libraries, shared libraries are
>> loaded with dlopen(RTLD_GLOBAL|RTLD_LAZY).
>>
>> Assertion (extended_type_info.cpp:92) occurs during program termination
>> (after main returned), during dlclose().
>>
>> If anything else isn't possible, would it be appropriate to change the
>> related code (before the release!) from:
>>
>> assert(start != end);
>>
>> // remove entry in map which corresponds to this type
>> do{
>> if(this == *start)
>> x.erase(start++);
>> else
>> ++start;
>> }while(start != end);
>
> After looking at this code again I have the impression that it is broken
> anyways.

Yes, but IMHO not for the reason you mention. Certainly I
wouldn't let the start++/++start "dance" pass a code review.

PS: don't use tab characters in posts! :-)

-- 
Genny

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk