diff options
author | Keith Bostic <keith@wiredtiger.com> | 2016-01-26 13:02:30 -0500 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2016-01-26 13:02:30 -0500 |
commit | 137710cbe92980030160a29cdb8d968326ba27b1 (patch) | |
tree | 3b7077c7ec47006a60af878aaf453f7eb8c3915a | |
parent | 6b8cb1508df5c25bcb2516e30cc7832267d22be7 (diff) | |
download | mongo-137710cbe92980030160a29cdb8d968326ba27b1.tar.gz |
WT-60: big endian support
Retrofit the big-endian changes back onto a little-endian platform.
-rw-r--r-- | src/block/block_open.c | 6 | ||||
-rw-r--r-- | src/block/block_write.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/block/block_open.c b/src/block/block_open.c index f78abc134fe..c57fd550dd2 100644 --- a/src/block/block_open.c +++ b/src/block/block_open.c @@ -307,8 +307,10 @@ __wt_desc_init(WT_SESSION_IMPL *session, WT_FH *fh, uint32_t allocsize) desc->minorv = WT_BLOCK_MINOR_VERSION; desc->cksum = 0; __wt_block_desc_byteswap(desc); - desc->cksum = __wt_bswap32(__wt_cksum(desc, allocsize)); - + desc->cksum = __wt_cksum(desc, allocsize); +#ifdef WORDS_BIGENDIAN + desc->cksum = __wt_bswap32(desc->cksum); +#endif ret = __wt_write(session, fh, (wt_off_t)0, (size_t)allocsize, desc); __wt_scr_free(session, &buf); diff --git a/src/block/block_write.c b/src/block/block_write.c index dd6e55d2ee7..4c6ac198fe4 100644 --- a/src/block/block_write.c +++ b/src/block/block_write.c @@ -272,9 +272,11 @@ __wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block, F_SET(blk, WT_BLOCK_DATA_CKSUM); blk->cksum = 0; __wt_block_header_byteswap(blk); - cksum = __wt_cksum( + blk->cksum = cksum = __wt_cksum( buf->mem, data_cksum ? align_size : WT_BLOCK_COMPRESS_SKIP); - blk->cksum = __wt_bswap32(cksum); +#ifdef WORDS_BIGENDIAN + blk->cksum = __wt_bswap32(blk->cksum); +#endif /* Pre-allocate some number of extension structures. */ WT_RET(__wt_block_ext_prealloc(session, 5)); |