forked from aniani/vim
patch 9.0.0949: crash when unletting a variable while listing variables
Problem: Crash when unletting a variable while listing variables.
Solution: Disallow changing a hashtable while going over the entries.
(closes #11435)
This commit is contained in:
@@ -10,7 +10,7 @@ void dict_unref(dict_T *d);
|
||||
int dict_free_nonref(int copyID);
|
||||
void dict_free_items(int copyID);
|
||||
dictitem_T *dictitem_alloc(char_u *key);
|
||||
void dictitem_remove(dict_T *dict, dictitem_T *item);
|
||||
void dictitem_remove(dict_T *dict, dictitem_T *item, char *command);
|
||||
void dictitem_free(dictitem_T *item);
|
||||
dict_T *dict_copy(dict_T *orig, int deep, int top, int copyID);
|
||||
int dict_wrong_func_name(dict_T *d, typval_T *tv, char_u *name);
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
/* hashtab.c */
|
||||
void hash_init(hashtab_T *ht);
|
||||
int check_hashtab_frozen(hashtab_T *ht, char *command);
|
||||
void hash_clear(hashtab_T *ht);
|
||||
void hash_clear_all(hashtab_T *ht, int off);
|
||||
hashitem_T *hash_find(hashtab_T *ht, char_u *key);
|
||||
hashitem_T *hash_lookup(hashtab_T *ht, char_u *key, hash_T hash);
|
||||
void hash_debug_results(void);
|
||||
int hash_add(hashtab_T *ht, char_u *key);
|
||||
int hash_add(hashtab_T *ht, char_u *key, char *command);
|
||||
int hash_add_item(hashtab_T *ht, hashitem_T *hi, char_u *key, hash_T hash);
|
||||
void hash_remove(hashtab_T *ht, hashitem_T *hi);
|
||||
int hash_remove(hashtab_T *ht, hashitem_T *hi, char *command);
|
||||
void hash_lock(hashtab_T *ht);
|
||||
void hash_lock_size(hashtab_T *ht, int size);
|
||||
void hash_unlock(hashtab_T *ht);
|
||||
|
||||
Reference in New Issue
Block a user