Spinlock::Locker l(crc_lock);
crc_map[fromto] = crc;
}
+ void invalidate_crc() {
+ Spinlock::Locker l(crc_lock);
+ crc_map.clear();
+ }
};
class buffer::raw_malloc : public buffer::raw {
assert(_raw);
assert(o <= _len);
assert(o+l <= _len);
+ _raw->invalidate_crc();
memcpy(c_str()+o, src, l);
}
void buffer::ptr::zero()
{
+ _raw->invalidate_crc();
memset(c_str(), 0, _len);
}
void buffer::ptr::zero(unsigned o, unsigned l)
{
assert(o+l <= _len);
+ _raw->invalidate_crc();
memset(c_str()+o, 0, l);
}