Ticket #4981: archive-tracking.patch

File archive-tracking.patch, 2.4 KB (added by jsternberg <jonathansternberg@…>, 12 years ago)

patch to enable no_tracking option

  • boost/archive/detail/iserializer.hpp

     
    142142        return boost::serialization::implementation_level< T >::value
    143143            >= boost::serialization::object_class_info;
    144144    }
    145     virtual bool tracking(const unsigned int /* flags */) const {
    146         return boost::serialization::tracking_level< T >::value
     145    virtual bool tracking(const unsigned int flags) const {
     146        return (flags & boost::archive::no_tracking) == 0
     147            && (boost::serialization::tracking_level< T >::value
    147148                == boost::serialization::track_always
    148             || ( boost::serialization::tracking_level< T >::value
    149                 == boost::serialization::track_selectively
    150                 && serialized_as_pointer());
     149                || ( boost::serialization::tracking_level< T >::value
     150                     == boost::serialization::track_selectively
     151                     && serialized_as_pointer()));
    151152    }
    152153    virtual version_type version() const {
    153154        return version_type(::boost::serialization::version< T >::value);
  • boost/archive/detail/oserializer.hpp

     
    119119        return boost::serialization::implementation_level< T >::value
    120120            >= boost::serialization::object_class_info;
    121121    }
    122     virtual bool tracking(const unsigned int /* flags */) const {
    123         return boost::serialization::tracking_level< T >::value == boost::serialization::track_always
    124             || (boost::serialization::tracking_level< T >::value == boost::serialization::track_selectively
    125                 && serialized_as_pointer());
     122    virtual bool tracking(const unsigned int flags) const {
     123        return (flags & boost::archive::no_tracking) == 0
     124            && (boost::serialization::tracking_level< T >::value == boost::serialization::track_always
     125                || (boost::serialization::tracking_level< T >::value == boost::serialization::track_selectively
     126                    && serialized_as_pointer()));
    126127    }
    127128    virtual version_type version() const {
    128129        return version_type(::boost::serialization::version< T >::value);