diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-08 21:12:40 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-08 21:12:40 +0100 |
commit | 1b3e0727ce86ca4cfa47f8b5421d82ed47a9bec1 (patch) | |
tree | 13be53f6af0250dc0defbc469eb77a75ec61eefc | |
parent | ac665c24c97582a64ae2d151a812eca92c1ff2d6 (diff) | |
download | vim-git-1b3e0727ce86ca4cfa47f8b5421d82ed47a9bec1.tar.gz |
patch 8.2.2113: MS-Windows GUI: crash after using ":set guifont=" four timesv8.2.2113
Problem: MS-Windows GUI: crash after using ":set guifont=" four times.
Solution: Check for NULL pointer. (Ken Takata, closes #7434)
-rw-r--r-- | src/gui_dwrite.cpp | 3 | ||||
-rw-r--r-- | src/testdir/test_gui.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 11 insertions, 1 deletions
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 @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2113, +/**/ 2112, /**/ 2111, |