mirror of
https://github.com/isar/libmdbx.git
synced 2024-10-30 23:39:19 +08:00
mdbx: fix assertions.
This commit is contained in:
parent
bc45eb30fb
commit
1d716c043d
@ -559,7 +559,6 @@ static bool mdbx_pnl_check(MDBX_PNL pl, bool allocated) {
|
|||||||
/* Sort an PNL.
|
/* Sort an PNL.
|
||||||
* [in,out] pnl The PNL to sort. */
|
* [in,out] pnl The PNL to sort. */
|
||||||
static void __hot mdbx_pnl_sort(MDBX_PNL pnl) {
|
static void __hot mdbx_pnl_sort(MDBX_PNL pnl) {
|
||||||
assert(pnl[0] <= MDBX_PNL_MAX && pnl[0] <= pnl[-1]);
|
|
||||||
/* Max possible depth of int-indexed tree * 2 items/level */
|
/* Max possible depth of int-indexed tree * 2 items/level */
|
||||||
int istack[sizeof(int) * CHAR_BIT * 2];
|
int istack[sizeof(int) * CHAR_BIT * 2];
|
||||||
int i, j, k, l, ir, jstack;
|
int i, j, k, l, ir, jstack;
|
||||||
@ -634,7 +633,7 @@ static void __hot mdbx_pnl_sort(MDBX_PNL pnl) {
|
|||||||
}
|
}
|
||||||
#undef PNL_SMALL
|
#undef PNL_SMALL
|
||||||
#undef PNL_SWAP
|
#undef PNL_SWAP
|
||||||
assert(mdbx_pnl_check(pnl, true));
|
assert(mdbx_pnl_check(pnl, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Search for an ID in an PNL.
|
/* Search for an ID in an PNL.
|
||||||
@ -7907,8 +7906,6 @@ int mdbx_cursor_put(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data,
|
|||||||
memcpy(olddata.iov_base, data->iov_base, data->iov_len);
|
memcpy(olddata.iov_base, data->iov_base, data->iov_len);
|
||||||
else {
|
else {
|
||||||
mdbx_cassert(mc, NUMKEYS(mc->mc_pg[mc->mc_top]) == 1);
|
mdbx_cassert(mc, NUMKEYS(mc->mc_pg[mc->mc_top]) == 1);
|
||||||
mdbx_cassert(mc, mc->mc_pg[mc->mc_top]->mp_upper ==
|
|
||||||
mc->mc_pg[mc->mc_top]->mp_lower);
|
|
||||||
mdbx_cassert(mc, IS_LEAF(mc->mc_pg[mc->mc_top]) &&
|
mdbx_cassert(mc, IS_LEAF(mc->mc_pg[mc->mc_top]) &&
|
||||||
!IS_LEAF2(mc->mc_pg[mc->mc_top]));
|
!IS_LEAF2(mc->mc_pg[mc->mc_top]));
|
||||||
mdbx_cassert(mc, NODEDSZ(leaf) == 0);
|
mdbx_cassert(mc, NODEDSZ(leaf) == 0);
|
||||||
@ -7916,7 +7913,7 @@ int mdbx_cursor_put(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data,
|
|||||||
mdbx_cassert(mc, key->iov_len < UINT16_MAX);
|
mdbx_cassert(mc, key->iov_len < UINT16_MAX);
|
||||||
leaf->mn_ksize = (uint16_t)key->iov_len;
|
leaf->mn_ksize = (uint16_t)key->iov_len;
|
||||||
memcpy(NODEKEY(leaf), key->iov_base, key->iov_len);
|
memcpy(NODEKEY(leaf), key->iov_base, key->iov_len);
|
||||||
assert((char *)NODEDATA(leaf) + NODEDSZ(leaf) <
|
assert((char *)NODEKEY(leaf) + NODEDSZ(leaf) <
|
||||||
(char *)(mc->mc_pg[mc->mc_top]) + env->me_psize);
|
(char *)(mc->mc_pg[mc->mc_top]) + env->me_psize);
|
||||||
goto fix_parent;
|
goto fix_parent;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user