summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2016-01-26 13:02:30 -0500
committerKeith Bostic <keith@wiredtiger.com>2016-01-26 13:02:30 -0500
commit137710cbe92980030160a29cdb8d968326ba27b1 (patch)
tree3b7077c7ec47006a60af878aaf453f7eb8c3915a
parent6b8cb1508df5c25bcb2516e30cc7832267d22be7 (diff)
downloadmongo-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.c6
-rw-r--r--src/block/block_write.c6
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));