
Hartmut Kaiser wrote:
Hartmut Kaiser wrote:
I've just made a change in void_cast.cpp. I tested it here and checked into the trunk(61546).
Could you test this change ASAP?
I will be able to test tomorrow evening only, but I definitely will test.
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 module. That is, in the presence of DLLS, there might be more than one entry for a given type. The other is for functions which cast pointers between base and derived classes. It is keyed on the entries above. The assertion is tripped on this latter table. 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. Does rolling back void_cast.cpp to 1.42 fix the problem? Also I would be curious to know more about the aplication. (also compiler etc.) Does the application dynamically unload DLLS and continue to execute? Is it possible to make a small example? Robert Ramey
Regards Hartmut
--------------- Meet me at BoostCon www.boostcon.com
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost