diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-08-08 17:08:05 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-08-08 17:08:05 +0100 |
commit | 1024690c015921b0a458172bc368133f63af1b89 (patch) | |
tree | 8a45303ba94fd06f32d5c5e00cafae9524a8bd70 | |
parent | 6e5c61119a07b513a99baa9618e8182a74fd7e24 (diff) | |
download | vim-git-1024690c015921b0a458172bc368133f63af1b89.tar.gz |
patch 9.0.0172: trying to allocate zero bytesv9.0.0172
Problem: Trying to allocate zero bytes.
Solution: Do not allocate the proptype array when there are none.
(closes #10867)
-rw-r--r-- | src/testdir/test_textprop.vim | 12 | ||||
-rw-r--r-- | src/textprop.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index 9fae8070a..2a0ffc0ac 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -71,6 +71,18 @@ func Test_proptype_buf() call assert_fails("call prop_type_add('one', {'bufnr': 98764})", "E158:") endfunc +def Test_proptype_add_remove() + # add and remove a prop type so that the array is empty + prop_type_add('local', {bufnr: bufnr('%')}) + prop_type_delete('local', {bufnr: bufnr('%')}) + prop_type_add('global', {highlight: 'ErrorMsg'}) + prop_add(1, 1, {length: 1, type: 'global'}) + redraw + + prop_clear(1) + prop_type_delete('global') +enddef + def Test_proptype_buf_list() new var bufnr = bufnr('') diff --git a/src/textprop.c b/src/textprop.c index d5a53d6cb..45023e88d 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -736,7 +736,7 @@ find_type_by_id(hashtab_T *ht, proptype_T ***array, int id) int low = 0; int high; - if (ht == NULL) + if (ht == NULL || ht->ht_used == 0) return NULL; // Make the loopup faster by creating an array with pointers to diff --git a/src/version.c b/src/version.c index 63a0eae2c..dec5fbdfe 100644 --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 172, +/**/ 171, /**/ 170, |