From 045968b46ad7304d35f353a199b661119b4ce8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4=20=D0=AE=D1=80=D1=8C?= =?UTF-8?q?=D0=B5=D0=B2=20=28Leonid=20Yuriev=29?= Date: Wed, 5 Nov 2025 00:01:22 +0300 Subject: [PATCH] mdbx: fix `txn_basis_snapshot()`. --- src/cogs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cogs.h b/src/cogs.h index bd8c98f5..9014bcbe 100644 --- a/src/cogs.h +++ b/src/cogs.h @@ -504,9 +504,9 @@ static inline int check_txn_rw(const MDBX_txn *txn, int bad_bits) { } MDBX_NOTHROW_CONST_FUNCTION static inline txnid_t txn_basis_snapshot(const MDBX_txn *txn) { - STATIC_ASSERT((MDBX_TXN_RDONLY >> 17) == 1); - STATIC_ASSERT((xMDBX_TXNID_STEP >> (xMDBX_TXNID_STEP == 2)) == 1); - const txnid_t committed_txnid = txn->txnid + (xMDBX_TXNID_STEP >> (xMDBX_TXNID_STEP == 2)) - ((txn->flags >> 17) & 1); + STATIC_ASSERT(((MDBX_TXN_RDONLY >> ((xMDBX_TXNID_STEP == 2) ? 16 : 17)) & xMDBX_TXNID_STEP) == xMDBX_TXNID_STEP); + const txnid_t committed_txnid = + txn->txnid - xMDBX_TXNID_STEP + ((txn->flags >> ((xMDBX_TXNID_STEP == 2) ? 16 : 17)) & xMDBX_TXNID_STEP); tASSERT(txn, committed_txnid == ((txn->flags & MDBX_TXN_RDONLY) ? txn->txnid : txn->txnid - xMDBX_TXNID_STEP)); return committed_txnid; }