From 21fbc363119c2dd956581efe455c7fece4668e7b Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Sun, 20 Dec 2020 01:05:45 +0300 Subject: [PATCH] mdbx: minor refine `mdbx_page_retire()`. Change-Id: I29d20ed47f56e17dde8c9417bfa1ec95302c1966 --- src/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index f6e07982..867e2ef1 100644 --- a/src/core.c +++ b/src/core.c @@ -4186,7 +4186,7 @@ static int mdbx_page_retire(MDBX_cursor *mc, MDBX_page *mp) { if (txn->tw.spill_pages) { const unsigned i = mdbx_pnl_exist(txn->tw.spill_pages, pgno << 1); - if (i) { + if (unlikely(i)) { /* This page is no longer spilled */ #if MDBX_PNL_ASCENDING mdbx_tassert(txn, i == MDBX_PNL_SIZE(txn->tw.spill_pages) || @@ -4195,9 +4195,10 @@ static int mdbx_page_retire(MDBX_cursor *mc, MDBX_page *mp) { mdbx_tassert(txn, i == 1 || txn->tw.spill_pages[i - 1] >= (pgno + npages) << 1); #endif - txn->tw.spill_pages[i] |= 1; if (i == MDBX_PNL_SIZE(txn->tw.spill_pages)) MDBX_PNL_SIZE(txn->tw.spill_pages) -= 1; + else + txn->tw.spill_pages[i] |= 1; int rc = mdbx_page_loose(txn, mp); if (unlikely(rc != MDBX_SUCCESS)) mc->mc_flags &= ~(C_INITIALIZED | C_EOF);