Subject: Re: [boost] [1.43][Serialization] Serialization library serioslybroken
From: Robert Ramey (ramey_at_[hidden])
Date: 2010-04-26 00:35:00
Hartmut Kaiser wrote:
>> Hartmut Kaiser wrote:
>>>> I've just made a change in void_cast.cpp. I tested it here and
>>>> the trunk(61546).
>>>> Could you test this change ASAP?
>>> I will be able to test tomorrow evening only, but I definitely will
>>> Regards Hartmut
>> You might want to check the change I made as well. The assert
>> exists in 1.42 - the only difference in the file - void_cast.cpp is
>> a small change I made to fix a memory leak. I'm not confident that
>> my fix actually fixed it - but of course everything passes here.
> I'm sorry to say I recompiled everything against Boost trunk (rev.
> 61561), but the problem still persists.
> I don't understand what's going on, but I doubt it's a problem
> directly in void_cast.cpp. For some reason the type I described gets
> registered more
> than once (definitely from different modules, although dynamically
> loaded, none gets unloaded before the assertion). Did you change
> anything related to auto-type registration?
There are two collections.
One is for serialized types. There is one entry per type per execution
That is, in the presence of DLLS, there might be more than one entry for a
The other is for functions which cast pointers between base and derived
It is keyed on the entries above. The assertion is tripped on this latter
I've checked all the differences between 1.42 and 1.43 and can't see
any other than those in void_cast.cpp which would explain this behavior.
rolling back void_cast.cpp to 1.42 fix the problem?
Also I would be curious to know more about the aplication. (also compiler
Does the application dynamically unload DLLS and continue to execute?
Is it possible to make a small example?
> Regards Hartmut
> Meet me at BoostCon
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk