From 0f7716297caaf5b4ee3a3f50e7bcc14108159727 Mon Sep 17 00:00:00 2001 From: Philip Gladstone Date: Mon, 30 Oct 2017 06:05:41 -0400 Subject: [PATCH] Make the CRON module work reliably (#2153) --- app/modules/cron.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/modules/cron.c b/app/modules/cron.c index 23f2c02b..4ba5d0bd 100644 --- a/app/modules/cron.c +++ b/app/modules/cron.c @@ -104,7 +104,7 @@ static size_t lcron_findindex(lua_State *L, cronent_ud_t *ud) { size_t i; for (i = 0; i < cronent_count; i++) { lua_rawgeti(L, LUA_REGISTRYINDEX, cronent_list[i]); - eud = lua_touserdata(L, 1); + eud = lua_touserdata(L, -1); lua_pop(L, 1); if (eud == ud) break; } @@ -141,7 +141,7 @@ static int lcron_unschedule(lua_State *L) { size_t i = lcron_findindex(L, ud); if (i == -1) return 0; luaL_unref(L, LUA_REGISTRYINDEX, cronent_list[i]); - memmove(cronent_list + i, cronent_list + i + 1, sizeof(int) * cronent_count - i - 1); + memmove(cronent_list + i, cronent_list + i + 1, sizeof(int) * (cronent_count - i - 1)); cronent_count--; return 0; } @@ -173,7 +173,7 @@ static void cron_handle_time(uint8_t mon, uint8_t dom, uint8_t dow, uint8_t hour desc.min = (uint64_t)1 << min; for (size_t i = 0; i < cronent_count; i++) { lua_rawgeti(L, LUA_REGISTRYINDEX, cronent_list[i]); - cronent_ud_t *ent = lua_touserdata(L, 1); + cronent_ud_t *ent = lua_touserdata(L, -1); lua_pop(L, 1); if ((ent->desc.mon & desc.mon ) == 0) continue; if ((ent->desc.dom & desc.dom ) == 0) continue;