Re: [Boost-bugs] [Boost C++ Libraries] #9612: Memory Access Violation when recursively serializing classes

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9612: Memory Access Violation when recursively serializing classes
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-01-31 15:16:22


#9612: Memory Access Violation when recursively serializing classes
------------------------------------------+---------------------------
  Reporter: Chris Rusby <chris.rusby@…> | Owner: ramey
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: serialization
   Version: Boost 1.55.0 | Severity: Problem
Resolution: | Keywords:
------------------------------------------+---------------------------

Comment (by brandon.kohn):

 It looks like there are two instances of the
 basic_iserializer<xml_iarchive, TestObject> which live in the CrashTestDLL
 and then in CrashTest. The one in the dll has a bpis member where the one
 in CrashTest has a null member. To figure this out I set a breakpoint on
 baseic_iserializer.hpp: basic_iserializer::set_bpis (around line 64 in
 boost 1.53). When it loads the dll you'll see these singletons being setup
 with the pointer iserializer.

 Then in the test case code add:

 {{{
 #!c++
     BOOST_AUTO( const &cinst,
 (boost::serialization::singleton<boost::archive::detail::iserializer<boost::archive::xml_iarchive,
 TestObject> >::get_const_instance()) );

     BOOST_CHECK(cinst.get_bpis_ptr() != 0);//! This is null!
 }}}

 I used the debugger to copy the value of m_bpis from the singleton in the
 DLL into the one in the main application and it then loads.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9612#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC