Subject: Re: [boost] [serialization] Latest changes broke module-singleton
From: Robert Ramey (ramey_at_[hidden])
Date: 2009-07-16 21:37:30
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.
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
> 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
> 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:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk