From 97b82463b4e97a4589fd154396a77b5a3bd96c10 Mon Sep 17 00:00:00 2001 From: a bellenir Date: Fri, 1 Aug 2014 06:07:02 +0000 Subject: [PATCH] fix segfault when removing frames --- source/screen.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/screen.c b/source/screen.c index 047cd3a..98fa5bd 100644 --- a/source/screen.c +++ b/source/screen.c @@ -74,6 +74,7 @@ void screen_close(void) { list_node_t* doomed_node = state_get_focused_node(); list_node_t* new_focus = doomed_node->next; if(new_focus == NULL) new_focus = Frame_List->tail; + mem_retain(doomed_node); list_delete_node(Frame_List, doomed_node); state_set_focused_node(new_focus); state_set_refresh_state(REFRESH_ALL_WINS); @@ -193,9 +194,9 @@ void screen_swap_frame_prev(void){ stoopid_redraw(ffoc, fpre); }else{ list_node_t* prev = Frame_List->tail; - list_node_t* new_node = NULL; Frame_T* ffoc = (Frame_T*)focused->contents; Frame_T* fpre = (Frame_T*)prev->contents; + list_node_t* new_node = NULL; mem_retain(ffoc); mem_retain(fpre); list_delete_node(Frame_List, focused); -- 2.52.0