diff options
author | fvogel <fvogelnew1@free.fr> | 2022-03-09 21:37:49 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2022-03-09 21:37:49 (GMT) |
commit | ae17007357f23615ecf2aba005495e7fff6a6957 (patch) | |
tree | 50f2bed57e6e8f5d67aa25d0e31f6998790c805c /generic/tkCanvWind.c | |
parent | 2df03c765cf8b22cf3ed085b2f5c5ddaf7b60ab3 (diff) | |
download | tk-ae17007357f23615ecf2aba005495e7fff6a6957.zip tk-ae17007357f23615ecf2aba005495e7fff6a6957.tar.gz tk-ae17007357f23615ecf2aba005495e7fff6a6957.tar.bz2 |
Fix [5412c64a79]: Segmentation fault on closing error report window. The problem is a canvas embedded window gets destroyed through a binding to <Configure>. Test canvWind-2.1 now passes.
Diffstat (limited to 'generic/tkCanvWind.c')
-rw-r--r-- | generic/tkCanvWind.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tkCanvWind.c b/generic/tkCanvWind.c index 4047b0f..4ca3f9b 100644 --- a/generic/tkCanvWind.c +++ b/generic/tkCanvWind.c @@ -619,6 +619,16 @@ DisplayWinItem( || (width != Tk_Width(winItemPtr->tkwin)) || (height != Tk_Height(winItemPtr->tkwin))) { Tk_MoveResizeWindow(winItemPtr->tkwin, x, y, width, height); + + /* + * Tk_MoveResizeWindow runs a Configure event which in turn may run + * the event loop and do anything, including destruction of the + * canvas window. Catch this case or we would crash in Tk_MapWindow. + */ + + if (!winItemPtr->tkwin) { + return; + } } Tk_MapWindow(winItemPtr->tkwin); } else { |