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:
parent
b425593af6
commit
7c1b9d0b91
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue