Boost logo

Boost :

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
> 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:

Boost list run by bdawes at, gregod at, cpdaniel at, john at