Subject: Re: [boost] [serialization] Latest changes broke module-singleton
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2009-07-16 22:27:52
> 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
> 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:
Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk