summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcflip <cflip@cflip.net>2023-01-12 16:35:44 -0700
committercflip <cflip@cflip.net>2023-01-12 16:35:50 -0700
commit0d69f89e6bedb5ef675610d1025eaf8b46bd3422 (patch)
tree2acc5f9e3325db387ce7c0093c2ec199225a285a
parent7964e549ff3889455ce1d1a87b47ab1b0adb722c (diff)
Clean up editor_state's memory on teardown
-rw-r--r--editor.c8
-rw-r--r--editor.h2
-rw-r--r--main.c3
3 files changed, 12 insertions, 1 deletions
diff --git a/editor.c b/editor.c
index ade6a77..9f51188 100644
--- a/editor.c
+++ b/editor.c
@@ -331,3 +331,11 @@ void editor_draw_message_bar(struct editor_state* editor, struct append_buffer*
if (message_length && time(NULL) - editor->status_message_time < 5)
ab_append(buffer, editor->status_message, message_length);
}
+
+void editor_destroy(struct editor_state *editor)
+{
+ free(editor->filename);
+ for (int i = 0; i < editor->row_count; i++)
+ free_row(&editor->rows[i]);
+ free(editor->rows);
+}
diff --git a/editor.h b/editor.h
index 7df152a..dc0b354 100644
--- a/editor.h
+++ b/editor.h
@@ -46,4 +46,6 @@ void editor_draw_rows(struct editor_state* editor, struct append_buffer* buffer)
void editor_draw_status_bar(struct editor_state* editor, struct append_buffer* buffer);
void editor_draw_message_bar(struct editor_state* editor, struct append_buffer* buffer);
+void editor_destroy(struct editor_state *editor);
+
#endif
diff --git a/main.c b/main.c
index e3a9399..205d580 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,3 @@
-#include "input.h"
#include "file.h"
#include "editor.h"
#include "window.h"
@@ -23,5 +22,7 @@ int main(int argc, char** argv)
}
window_destroy();
+ editor_destroy(&editor);
+
return 0;
}