change to a faster checksum (old was md5). new is less discriminating but fast.

also, now includes the JSectHeader in the checksum.
This commit is contained in:
dwight
2011-02-24 13:34:42 -05:00
parent 40f1e46d52
commit 6113b4cd26
8 changed files with 103 additions and 28 deletions

View File

@@ -161,19 +161,19 @@ namespace mongo {
prepBasicWrites(bb);
}
// pad to alignment, and set the total section length in the JSectHeader
assert( 0xffffe000 == (~(Alignment-1)) );
unsigned lenWillBe = bb.len() + sizeof(JSectFooter);
unsigned L = (lenWillBe + Alignment-1) & (~(Alignment-1));
dassert( L >= lenWillBe );
*((unsigned*)bb.atOfs(0)) = L;
{
JSectFooter f(bb.buf(), bb.len());
bb.appendStruct(f);
}
{
// pad to alignment, and set the total section length in the JSectHeader
assert( 0xffffe000 == (~(Alignment-1)) );
unsigned L = (bb.len() + Alignment-1) & (~(Alignment-1));
dassert( L >= (unsigned) bb.len() );
*((unsigned*)bb.atOfs(0)) = L;
unsigned padding = L - bb.len();
bb.skip(padding);
dassert( bb.len() % Alignment == 0 );