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:
> http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk