]> granicus.if.org Git - vim/commitdiff
patch 9.0.0172: trying to allocate zero bytes v9.0.0172
authorBram Moolenaar <Bram@vim.org>
Mon, 8 Aug 2022 16:08:05 +0000 (17:08 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 8 Aug 2022 16:08:05 +0000 (17:08 +0100)
Problem:    Trying to allocate zero bytes.
Solution:   Do not allocate the proptype array when there are none.
            (closes #10867)

src/testdir/test_textprop.vim
src/textprop.c
src/version.c

index 9fae8070abea019c4e1350ed79256e08c69142d7..2a0ffc0ac47c65aaf62db3bcbe6d66068752f701 100644 (file)
@@ -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('')
index d5a53d6cbe7cfdd17520e2eab451ddbcf4b80c63..45023e88d5e789a6eeaaa24ce77779a0590b6455 100644 (file)
@@ -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
index 63a0eae2c873250c340960aed294276ae244ce7f..dec5fbdfebf8c91ca117d60b56f4b72456cdf5d9 100644 (file)
@@ -735,6 +735,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    172,
 /**/
     171,
 /**/