patch 8.0.1283: test 86 fails under ASAN
Problem: Test 86 fails under ASAN.
Solution: Fix that an item was added to a dictionary twice.
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 1801967..3380142 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1996,6 +1996,7 @@
PyObject *todecref;
char_u *key;
dictitem_T *di;
+ hashitem_T *hi;
if (!(fast = PySequence_Fast(item, "")))
{
@@ -2052,7 +2053,8 @@
Py_DECREF(fast);
- if (dict_add(dict, di) == FAIL)
+ hi = hash_find(&dict->dv_hashtab, di->di_key);
+ if (!HASHITEM_EMPTY(hi) || dict_add(dict, di) == FAIL)
{
RAISE_KEY_ADD_FAIL(di->di_key);
Py_DECREF(iterator);