fix stack handling when getting results

This commit is contained in:
whottgen 2004-09-22 08:58:06 +00:00
parent da7bdfa3f9
commit 727137b694

View File

@ -172,10 +172,9 @@ int lua_work(void *handle, void *work_handle, char *input, char *output) {
res = lua_pcall(lwh->l, 1, 2, 0);
lua_output = (char*) lua_tostring(lwh->l, lua_gettop(lwh->l));
lua_pop(lwh->l, 1);
/* peek the result from the stack */
lua_output = (char*) lua_tostring(lwh->l, lua_gettop(lwh->l));
result = lua_tonumber(lwh->l, lua_gettop(lwh->l));
lua_pop(lwh->l, 1);
if (0 != res) {
syslog(LOG_ERR, "lua_work: error when calling entrypoint function: %d", res);
@ -185,5 +184,8 @@ int lua_work(void *handle, void *work_handle, char *input, char *output) {
snprintf(output, ANSWER_BUFSIZE, lua_output);
}
/* remove the result from the stack */
lua_pop(lwh->l, 2);
return result;
}