
I think I fixed this and checked in the change a couple of hours ago. I broke this while fixing something else. Now all serializer maps should be instanticiated only by the serialization DLL. Let me know if there's still a problem.
Let me know if it's not fixed.
Currently I'm getting:
libs\serialization\src\binary_iarchive.cpp(17) : fatal error C1083: Cannot open include file: 'boost/archive/impl/archive_serializer_map.ipp': No such file or directory
Compiles fine now. Thanks! Now, at runtime I'm getting a pure virtual function call assertion here: libs/serialization/src/void_cast.cpp, line 239 (yes, it's still the same delete, *sigh*. If I comment out the 'delete vc;', things work again. So the module-singleton issue seems to be fixed. Regards Hartmut
Regards Hartmut
Hartmut Kaiser wrote:
Hi all,
I believe the latest changes to the serialization library in trunk broke the encapsulation of module singletons. Module singletons are now accessed across module boundaries (i.e data stored in a different module are looked up locally).
A polymorphic class registered using BOOST_CLASS_EXPORT() gets registered in the archive's basic_serializer_map, which is stored
in
a module-singleton. Ok so far. Now, if this type is serialized by a different module via its base class (which is the usual scenario for us, as all serialization code lives in one place) this code tries to look up the type in the archive's module-singleton (basic_serializer_map) of its own module (I saw this for instance at boost/archive/detail/oserializer.npp, line 413). But the data is stored not there but in the original module, where the type is implemented.
As a result the assertion at libs/serialization/src/basic_initializer_map.cpp, line 56 fires.
Anything I could do about this?
Regards Hartmut
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost