stop leaking on the Lua stack

..even if at the expense of leaking on the heap. Because the Lua stack
has very limited space (~20 slots). When it overflows, we segfault.
This commit is contained in:
Kartik K. Agaram 2021-12-16 02:50:32 -08:00
parent b425593af6
commit 7c1b9d0b91
2 changed files with 3 additions and 2 deletions

View File

@ -1080,6 +1080,7 @@ static int Quit = 0;
static int Back_to_big_picture = 0;
extern void save_editor_state(int rowoff, int coloff, int cy, int cx);
static void editorProcessKeypress(lua_State* L) {
lua_settop(L, 0); /* big hammer to avoid overflowing the stack */
int c = getch();
//? mvprintw(LINES-3, 60, "key: %d\n", c);
//? getch();

View File

@ -901,10 +901,10 @@ int restore_editor_view (lua_State *L) {
status = load_editor_buffer_to_current_definition_in_image(L);
if (status == 0 || lua_isnil(L, -1))
break;
Previous_error = lua_tostring(L, -1);
Previous_error = strdup(lua_tostring(L, -1)); /* memory leak */
if (Previous_error == NULL) Previous_error = "(error object is not a string)";
back_to_big_picture = resumeEdit(L);
lua_pop(L, 1);
back_to_big_picture = resumeEdit(L);
}
return back_to_big_picture;
}