Boost logo

Boost :

Subject: Re: [boost] [serialization] Latest changes broke module-singleton
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2009-07-17 15:17:18


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


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