diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2020-12-27 14:40:46 -0500 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2020-12-27 14:40:46 -0500 |
commit | a3c71115434018e16c5f3c2a4c3672ee3a12b7dc (patch) | |
tree | db69dd57df1b1ee33b1d35500cfb4f5282e32700 | |
parent | 463183bdf4ca1637cf08b8e5dc441490e96c0ac0 (diff) |
fixed some memory leaks
-rw-r--r-- | buffer.c | 7 | ||||
-rw-r--r-- | valgrind_suppresions.txt | 7 |
2 files changed, 13 insertions, 1 deletions
@@ -377,6 +377,7 @@ static void buffer_remove_last_edit_if_empty(TextBuffer *buffer) { if (buffer->store_undo_events) { BufferEdit *last_edit = arr_lastp(buffer->undo_history); if (last_edit && !buffer_edit_does_anything(buffer, last_edit)) { + buffer_edit_free(last_edit); arr_remove_last(buffer->undo_history); } } @@ -435,7 +436,6 @@ static void buffer_line_free(Line *line) { // Does not free the pointer `buffer` (buffer might not have even been allocated with malloc) void buffer_free(TextBuffer *buffer) { - Line *lines = buffer->lines; u32 nlines = buffer->nlines; for (u32 i = 0; i < nlines; ++i) { @@ -443,6 +443,11 @@ void buffer_free(TextBuffer *buffer) { } free(lines); + arr_foreach_ptr(buffer->undo_history, BufferEdit, edit) + buffer_edit_free(edit); + arr_foreach_ptr(buffer->redo_history, BufferEdit, edit) + buffer_edit_free(edit); + arr_free(buffer->undo_history); arr_free(buffer->redo_history); diff --git a/valgrind_suppresions.txt b/valgrind_suppresions.txt index 3a6bc8d..45424fb 100644 --- a/valgrind_suppresions.txt +++ b/valgrind_suppresions.txt @@ -1,5 +1,12 @@ { <insert_a_suppression_name_here> + Memcheck:Leak + ... + fun:_dbus_strdup + ... +} +{ + <insert_a_suppression_name_here> Memcheck:Addr8 obj:/usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 obj:/usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0 |