Hi, Sergey,
see my comments
The hunk is gone after rebase.Hi, Sergey! Thanks for the patch! LGTM, except 1 minor comment and 1 reminder below. On 25.02.25, Sergey Bronnikov wrote:The patch consolidates handling profilers errors into a single place - in a function `prof_error()` and handles PROFILE_ERRIO, generated in a function `misc_memprof_start`, in a `prof_error()`. --- src/lib_misc.c | 49 +++++++++---------------------------------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/src/lib_misc.c b/src/lib_misc.c index b4b58509..c4b40996 100644 --- a/src/lib_misc.c +++ b/src/lib_misc.c @@ -286,14 +286,14 @@ static int prof_error(lua_State *L, int status, const char *err_details) lua_pushstring(L, err2msg(LJ_ERR_PROF_MISUSE)); lua_pushinteger(L, EINVAL); return 3; -#if LJ_HASSYSPROF +#if LJ_HASSYSPROF || LJ_HASMEMPROF case PROFILE_ERRRUN: lua_pushnil(L); lua_pushstring(L, err2msg(LJ_ERR_PROF_ISRUNNING)); lua_pushinteger(L, EINVAL); return 3; case PROFILE_ERRIO: - return luaL_fileresult(L, 0, NULL); + return luaL_fileresult(L, 0, err_details);Discussed offline that this should be done in the previous patch-set.
#endif<snipped>+ if (LJ_UNLIKELY(status == PROFILE_ERRRUN)) { lua_pushnil(L); lua_pushstring(L, err2msg(LJ_ERR_PROF_NOTRUNNING)); lua_pushinteger(L, EINVAL); return 3; - case PROFILE_ERRIO: - return luaL_fileresult(L, 0, NULL); -#endif - default: - lj_assertL(0, "bad memprof error %d", status); - return 0; - } } + if (LJ_UNLIKELY(status != PROFILE_SUCCESS))Minor: Looks like more natural to use `else if` here? Feel free to ignore.
Fixed:
--- a/src/lib_misc.c
+++ b/src/lib_misc.c
@@ -443,9 +443,9 @@ LJLIB_CF(misc_memprof_stop)
lua_pushstring(L, err2msg(LJ_ERR_PROF_NOTRUNNING));
lua_pushinteger(L, EINVAL);
return 3;
- }
- if (LJ_UNLIKELY(status != PROFILE_SUCCESS))
+ } else if (LJ_UNLIKELY(status != PROFILE_SUCCESS)) {
return prof_error(L, status, NULL);
+ }
lua_pushboolean(L, 1);
return 1;
+ return prof_error(L, status, NULL); + lua_pushboolean(L, 1); return 1; #endif /* !LJ_HASMEMPROF */ -- 2.43.0