aboutsummaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c
index dd25938..d090e51 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -78,14 +78,20 @@ void scr_destroy(char s) {
if(s < 2 || s >= MAX_SCREENS)
return;
+ /* don't destroy if already destroyed (or never created) */
+ if(screens[s].status == SCR_UNUSED)
+ return;
+
// pool_reclaim_lines(screens[s].pool, screens[s].line_list);
pools[screens[s].pool].screen_count--;
screens[s].title[0] = 0;
screens[s].status = SCR_UNUSED;
screens[s].pool = POOL_UNUSED;
- screens[s].line_list = 0;
screens[s].line_count = screens[s].scrollback_pos = 0;
+
+ /* theoretically this could be 0, but as a safety net... */
+ screens[s].line_list = (line_t *)END_MARKER;
}
void render_vis_buf(void) {