mdbx: more unlikely (minor).

Change-Id: Id6139473b3e6a7c3f099acc64db3180448294d0a
This commit is contained in:
Leonid Yuriev 2019-06-21 02:11:28 +03:00
parent 52bc4a7f41
commit eecec74e21

View File

@ -12854,7 +12854,7 @@ typedef struct mdbx_walk_ctx {
/* Depth-first tree traversal. */ /* Depth-first tree traversal. */
static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi, static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
pgno_t pgno, int deep) { pgno_t pgno, int deep) {
if (pgno == P_INVALID) if (unlikely(pgno == P_INVALID))
return MDBX_SUCCESS; /* empty db */ return MDBX_SUCCESS; /* empty db */
MDBX_cursor mc; MDBX_cursor mc;
@ -12864,7 +12864,7 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
MDBX_page *mp; MDBX_page *mp;
int rc = mdbx_page_get(&mc, pgno, &mp, NULL); int rc = mdbx_page_get(&mc, pgno, &mp, NULL);
if (rc) if (unlikely(rc != MDBX_SUCCESS))
return rc; return rc;
const int nkeys = NUMKEYS(mp); const int nkeys = NUMKEYS(mp);
@ -12880,7 +12880,7 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
switch (mp->mp_flags) { switch (mp->mp_flags) {
case P_BRANCH: case P_BRANCH:
type = MDBX_page_branch; type = MDBX_page_branch;
if (nkeys < 2) if (unlikely(nkeys < 2))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
break; break;
case P_LEAF: case P_LEAF:
@ -12920,13 +12920,13 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
pgno_t large_pgno; pgno_t large_pgno;
memcpy(&large_pgno, NODEDATA(node), sizeof(pgno_t)); memcpy(&large_pgno, NODEDATA(node), sizeof(pgno_t));
rc = mdbx_page_get(&mc, large_pgno, &op, NULL); rc = mdbx_page_get(&mc, large_pgno, &op, NULL);
if (rc) if (unlikely(rc != MDBX_SUCCESS))
return rc; return rc;
/* LY: Don't use mask here, e.g bitwise /* LY: Don't use mask here, e.g bitwise
* (P_BRANCH|P_LEAF|P_LEAF2|P_META|P_OVERFLOW|P_SUBP). * (P_BRANCH|P_LEAF|P_LEAF2|P_META|P_OVERFLOW|P_SUBP).
* Pages should not me marked dirty/loose or otherwise. */ * Pages should not me marked dirty/loose or otherwise. */
if (P_OVERFLOW != op->mp_flags) if (unlikely(P_OVERFLOW != op->mp_flags))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
const size_t over_header = PAGEHDRSZ; const size_t over_header = PAGEHDRSZ;
@ -12942,19 +12942,19 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
case F_SUBDATA /* sub-db */: { case F_SUBDATA /* sub-db */: {
const size_t namelen = NODEKSZ(node); const size_t namelen = NODEKSZ(node);
if (namelen == 0 || NODEDSZ(node) != sizeof(MDBX_db)) if (unlikely(namelen == 0 || NODEDSZ(node) != sizeof(MDBX_db)))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
payload_size += sizeof(MDBX_db); payload_size += sizeof(MDBX_db);
} break; } break;
case F_SUBDATA | F_DUPDATA /* dupsorted sub-tree */: { case F_SUBDATA | F_DUPDATA /* dupsorted sub-tree */: {
if (NODEDSZ(node) != sizeof(MDBX_db)) if (unlikely(NODEDSZ(node) != sizeof(MDBX_db)))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
payload_size += sizeof(MDBX_db); payload_size += sizeof(MDBX_db);
} break; } break;
case F_DUPDATA /* short sub-page */: { case F_DUPDATA /* short sub-page */: {
if (NODEDSZ(node) < PAGEHDRSZ) if (unlikely(NODEDSZ(node) < PAGEHDRSZ))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
MDBX_page *sp = NODEDATA(node); MDBX_page *sp = NODEDATA(node);
@ -12987,7 +12987,7 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
assert(subtype == MDBX_subpage_leaf); assert(subtype == MDBX_subpage_leaf);
MDBX_node *subnode = NODEPTR(sp, j); MDBX_node *subnode = NODEPTR(sp, j);
subpayload_size += NODESIZE + NODEKSZ(subnode) + NODEDSZ(subnode); subpayload_size += NODESIZE + NODEKSZ(subnode) + NODEDSZ(subnode);
if (subnode->mn_flags != 0) if (unlikely(subnode->mn_flags != 0))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
} }
} }
@ -13034,7 +13034,7 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
case F_SUBDATA /* sub-db */: { case F_SUBDATA /* sub-db */: {
const size_t namelen = NODEKSZ(node); const size_t namelen = NODEKSZ(node);
if (namelen == 0 || NODEDSZ(node) != sizeof(MDBX_db)) if (unlikely(namelen == 0 || NODEDSZ(node) != sizeof(MDBX_db)))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
char namebuf_onstask[142]; char namebuf_onstask[142];
@ -13054,7 +13054,7 @@ static int __cold mdbx_env_walk(mdbx_walk_ctx_t *ctx, const char *dbi,
} break; } break;
case F_SUBDATA | F_DUPDATA /* dupsorted sub-tree */: case F_SUBDATA | F_DUPDATA /* dupsorted sub-tree */:
if (NODEDSZ(node) != sizeof(MDBX_db)) if (unlikely(NODEDSZ(node) != sizeof(MDBX_db)))
return MDBX_CORRUPTED; return MDBX_CORRUPTED;
memcpy(&db, NODEDATA(node), sizeof(db)); memcpy(&db, NODEDATA(node), sizeof(db));