From: Bram Moolenaar Date: Tue, 8 Dec 2020 20:12:40 +0000 (+0100) Subject: patch 8.2.2113: MS-Windows GUI: crash after using ":set guifont=" four times X-Git-Tag: v8.2.2113 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1b3e0727ce86ca4cfa47f8b5421d82ed47a9bec1;p=vim patch 8.2.2113: MS-Windows GUI: crash after using ":set guifont=" four times Problem: MS-Windows GUI: crash after using ":set guifont=" four times. Solution: Check for NULL pointer. (Ken Takata, closes #7434) --- diff --git a/src/gui_dwrite.cpp b/src/gui_dwrite.cpp index 8767dc1af..83acdab1a 100644 --- a/src/gui_dwrite.cpp +++ b/src/gui_dwrite.cpp @@ -239,7 +239,8 @@ public: if (mItems[n].pTextFormat != item.pTextFormat) { SafeRelease(&mItems[n].pTextFormat); - item.pTextFormat->AddRef(); + if (item.pTextFormat != NULL) + item.pTextFormat->AddRef(); } mItems[n] = item; slide(n); diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim index 89ec3a912..6d750e021 100644 --- a/src/testdir/test_gui.vim +++ b/src/testdir/test_gui.vim @@ -386,6 +386,13 @@ func Test_set_guifont() if has('win32') " Invalid font names are accepted in GTK GUI call assert_fails('set guifont=xa1bc23d7f', 'E596:') + + " doing this four times used to cause a crash + set guifont= + set guifont= + set guifont= + set guifont= + set guifont= endif if has('xfontset') diff --git a/src/version.c b/src/version.c index f4415817b..75590690d 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2113, /**/ 2112, /**/