Ticket #3604: ticket3604.patch

File ticket3604.patch, 1.8 KB (added by kondo@…, 13 years ago)
  • boost/serialization/void_cast.hpp

     
    108108protected:
    109109    void recursive_register(bool includes_virtual_base = false) const;
    110110    void recursive_unregister() const;
     111private:
     112    // Data members
     113    mutable bool m_includes_virtual_base;
    111114public:
    112     // Data members
    113115    const extended_type_info * m_derived;
    114116    const extended_type_info * m_base;
    115117    /*const*/ std::ptrdiff_t m_difference;
  • libs/serialization/src/void_cast.cpp

     
    211211void_caster::recursive_register(bool includes_virtual_base) const {
    212212    void_cast_detail::set_type & s
    213213        = void_cast_detail::void_caster_registry::get_mutable_instance();
     214    m_includes_virtual_base = includes_virtual_base;
    214215
    215216    #ifdef BOOST_SERIALIZATION_LOG
    216217    std::clog << "recursive_register\n";
     
    239240                    (*it)->m_derived,
    240241                    m_base,
    241242                    m_difference + (*it)->m_difference,
    242                     includes_virtual_base,
     243                    includes_virtual_base || (*it)->m_includes_virtual_base,
    243244                    this
    244245                );
    245246            }
     
    256257                    m_derived,
    257258                    (*it)->m_base,
    258259                    m_difference + (*it)->m_difference,
    259                     includes_virtual_base,
     260                    includes_virtual_base || (*it)->m_includes_virtual_base,
    260261                    this
    261262                );
    262263            }