about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-12-16 04:02:37 -0800
committerKartik K. Agaram <vc@akkartik.com>2021-12-16 04:02:37 -0800
commit76ed8d30f411d980d25086d2bbfe048c2816180d (patch)
tree4fe93db6b5794c6dc9f2cd6be12079834120ec38
parent68e008526a8e5a461f42beca3518b39deccdba27 (diff)
downloadteliva-76ed8d30f411d980d25086d2bbfe048c2816180d.tar.gz
Revert "stop leaking on the Lua stack"
This reverts commit 7c1b9d0b91295323b5ed5ec3e09b46566288bc75.

The 'big hammer' isn't good enough. The recent changes view seems to
need state on the stack across invocations of the editor.
-rw-r--r--src/kilo.c1
-rw-r--r--src/lua.c4
2 files changed, 2 insertions, 3 deletions
diff --git a/src/kilo.c b/src/kilo.c
index f5cea3d..4a5bf52 100644
--- a/src/kilo.c
+++ b/src/kilo.c
@@ -1080,7 +1080,6 @@ 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();
diff --git a/src/lua.c b/src/lua.c
index 834e547..ac6e249 100644
--- a/src/lua.c
+++ b/src/lua.c
@@ -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 = strdup(lua_tostring(L, -1));  /* memory leak */
+    Previous_error = lua_tostring(L, -1);
     if (Previous_error == NULL) Previous_error = "(error object is not a string)";
-    lua_pop(L, 1);
     back_to_big_picture = resumeEdit(L);
+    lua_pop(L, 1);
   }
   return back_to_big_picture;
 }