summaryrefslogtreecommitdiff
path: root/src/reconcile
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@wiredtiger.com>2015-02-03 12:30:56 +1100
committerMichael Cahill <michael.cahill@wiredtiger.com>2015-02-03 12:30:56 +1100
commite645e1985499efded84f70916bfc98dc3cf20ef4 (patch)
treef19be217c4f59413de4c5a294a8c3db71a6cff2d /src/reconcile
parent71f1559c91ed119082ebe42772da15e28915e1c8 (diff)
parent7a68a1643f9beafc34b69d2e52c8af741e9dc333 (diff)
downloadmongo-e645e1985499efded84f70916bfc98dc3cf20ef4.tar.gz
Merge branch 'develop' into discard-dirty
Diffstat (limited to 'src/reconcile')
-rw-r--r--src/reconcile/rec_write.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/reconcile/rec_write.c b/src/reconcile/rec_write.c
index b4f28cc4e17..1520cd6ef30 100644
--- a/src/reconcile/rec_write.c
+++ b/src/reconcile/rec_write.c
@@ -4008,7 +4008,6 @@ __rec_row_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page)
WT_ERR(__rec_child_modify(session, r, ref, &hazard, &state));
addr = ref->addr;
child = ref->page;
- vtype = 0;
/* Deleted child we don't have to write. */
if (state == WT_CHILD_IGNORE) {
@@ -4026,10 +4025,6 @@ __rec_row_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page)
continue;
}
- /* Deleted child requiring a proxy cell. */
- if (state == WT_CHILD_PROXY)
- vtype = WT_CELL_ADDR_DEL;
-
/*
* Modified child. Empty pages are merged into the parent and
* discarded.
@@ -4079,22 +4074,22 @@ __rec_row_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page)
/*
* Build the value cell, the child page's address. Addr points
- * to an on-page cell or an off-page WT_ADDR structure. The
- * cell type has been set in the case of page deletion requiring
+ * to an on-page cell or an off-page WT_ADDR structure. There's
+ * a special cell type in the case of page deletion requiring
* a proxy cell, otherwise use the information from the addr or
* original cell.
*/
if (__wt_off_page(page, addr)) {
p = addr->addr;
size = addr->size;
- if (vtype == 0)
- vtype = __rec_vtype(addr);
+ vtype = state == WT_CHILD_PROXY ?
+ WT_CELL_ADDR_DEL : __rec_vtype(addr);
} else {
__wt_cell_unpack(ref->addr, vpack);
p = vpack->data;
size = vpack->size;
- if (vtype == 0)
- vtype = vpack->raw;
+ vtype = state == WT_CHILD_PROXY ?
+ WT_CELL_ADDR_DEL : vpack->raw;
}
__rec_cell_build_addr(r, p, size, vtype, 0);
CHILD_RELEASE_ERR(session, hazard, ref);