The direct link between the terminal and the back end via
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 24 Jan 2007 13:53:28 +0000 (13:53 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 24 Jan 2007 13:53:28 +0000 (13:53 +0000)
term_provide_resize_fn() was not being broken when the back end was
destroyed on session termination, causing resizing an inactive PuTTY
to be a segfault hazard.

git-svn-id: svn://svn.tartarus.org/sgt/putty@7143 cda61777-01e9-0310-a592-d414129be87e

terminal.c
unix/gtkwin.c
windows/window.c

index 92c3f03..f58941f 100644 (file)
@@ -1722,7 +1722,7 @@ void term_provide_resize_fn(Terminal *term,
 {
     term->resize_fn = resize_fn;
     term->resize_ctx = resize_ctx;
-    if (term->cols > 0 && term->rows > 0)
+    if (resize_fn && term->cols > 0 && term->rows > 0)
        resize_fn(resize_ctx, term->cols, term->rows);
 }
 
index 11c9c21..d0b4693 100644 (file)
@@ -1205,6 +1205,7 @@ void notify_remote_exit(void *frontend)
            inst->back->free(inst->backhandle);
            inst->backhandle = NULL;
            inst->back = NULL;
+            term_provide_resize_fn(inst->term, NULL, NULL);
            update_specials_menu(inst);
        }
        gtk_widget_show(inst->restartitem);
index 824827a..dca27a4 100644 (file)
@@ -299,6 +299,7 @@ static void close_session(void)
        back->free(backhandle);
        backhandle = NULL;
        back = NULL;
+        term_provide_resize_fn(term, NULL, NULL);
        update_specials_menu(NULL);
     }