From cf8540d84e1f02baf504bb3f451c60acd4e1439f 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: Sat, 17 Sep 2022 10:02:42 +0300 Subject: [PATCH] mdbx: minor refine `mdbx_env_create()`. --- src/core.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/core.c b/src/core.c index c8fd9e03..4352545e 100644 --- a/src/core.c +++ b/src/core.c @@ -11489,6 +11489,16 @@ lckless_stub(const MDBX_env *env) { } __cold int mdbx_env_create(MDBX_env **penv) { + if (unlikely(!penv)) + return MDBX_EINVAL; + *penv = nullptr; + + const size_t os_psize = osal_syspagesize(); + if (unlikely(!is_powerof2(os_psize) || os_psize < MIN_PAGESIZE)) { + ERROR("unsuitable system pagesize %" PRIuPTR, os_psize); + return MDBX_INCOMPATIBLE; + } + MDBX_env *env = osal_calloc(1, sizeof(MDBX_env)); if (unlikely(!env)) return MDBX_ENOMEM; @@ -11516,12 +11526,6 @@ __cold int mdbx_env_create(MDBX_env **penv) { env->me_options.merge_threshold_16dot16_percent = 65536 / 4 /* 25% */; int rc; - const size_t os_psize = osal_syspagesize(); - if (unlikely(!is_powerof2(os_psize) || os_psize < MIN_PAGESIZE)) { - ERROR("unsuitable system pagesize %" PRIuPTR, os_psize); - rc = MDBX_INCOMPATIBLE; - goto bailout; - } env->me_os_psize = (unsigned)os_psize; setup_pagesize(env, (env->me_os_psize < MAX_PAGESIZE) ? env->me_os_psize : MAX_PAGESIZE); @@ -11558,7 +11562,6 @@ __cold int mdbx_env_create(MDBX_env **penv) { bailout: osal_free(env); - *penv = nullptr; return rc; }