Mercurial > vim
comparison src/if_py_both.h @ 14303:f761a55a8aed v8.1.0167
patch 8.1.0167: lock flag in new dictitem is reset in many places
commit https://github.com/vim/vim/commit/c89d4b35300b98cf68b14c89c8e1add51bd857e3
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 8 17:19:02 2018 +0200
patch 8.1.0167: lock flag in new dictitem is reset in many places
Problem: Lock flag in new dictitem is reset in many places.
Solution: Always reset the lock flag.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 08 Jul 2018 17:30:06 +0200 |
parents | 30a0068f6167 |
children | 380217380738 |
comparison
equal
deleted
inserted
replaced
14302:35465f8b5195 | 14303:f761a55a8aed |
---|---|
1830 { | 1830 { |
1831 Py_XDECREF(todecref); | 1831 Py_XDECREF(todecref); |
1832 PyErr_NoMemory(); | 1832 PyErr_NoMemory(); |
1833 return -1; | 1833 return -1; |
1834 } | 1834 } |
1835 di->di_tv.v_lock = 0; | |
1836 di->di_tv.v_type = VAR_UNKNOWN; | 1835 di->di_tv.v_type = VAR_UNKNOWN; |
1837 | 1836 |
1838 if (dict_add(dict, di) == FAIL) | 1837 if (dict_add(dict, di) == FAIL) |
1839 { | 1838 { |
1840 vim_free(di); | 1839 vim_free(di); |
2036 Py_DECREF(fast); | 2035 Py_DECREF(fast); |
2037 Py_DECREF(iterator); | 2036 Py_DECREF(iterator); |
2038 PyErr_NoMemory(); | 2037 PyErr_NoMemory(); |
2039 return NULL; | 2038 return NULL; |
2040 } | 2039 } |
2041 di->di_tv.v_lock = 0; | |
2042 di->di_tv.v_type = VAR_UNKNOWN; | 2040 di->di_tv.v_type = VAR_UNKNOWN; |
2043 | 2041 |
2044 valObject = PySequence_Fast_GET_ITEM(fast, 1); | 2042 valObject = PySequence_Fast_GET_ITEM(fast, 1); |
2045 | 2043 |
2046 if (ConvertFromPyObject(valObject, &di->di_tv) == -1) | 2044 if (ConvertFromPyObject(valObject, &di->di_tv) == -1) |
5850 { | 5848 { |
5851 PyErr_NoMemory(); | 5849 PyErr_NoMemory(); |
5852 dict_unref(dict); | 5850 dict_unref(dict); |
5853 return -1; | 5851 return -1; |
5854 } | 5852 } |
5855 di->di_tv.v_lock = 0; | |
5856 | 5853 |
5857 if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1) | 5854 if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1) |
5858 { | 5855 { |
5859 vim_free(di); | 5856 vim_free(di); |
5860 dict_unref(dict); | 5857 dict_unref(dict); |
5948 Py_DECREF(valObject); | 5945 Py_DECREF(valObject); |
5949 dict_unref(dict); | 5946 dict_unref(dict); |
5950 PyErr_NoMemory(); | 5947 PyErr_NoMemory(); |
5951 return -1; | 5948 return -1; |
5952 } | 5949 } |
5953 di->di_tv.v_lock = 0; | |
5954 | 5950 |
5955 if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1) | 5951 if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1) |
5956 { | 5952 { |
5957 Py_DECREF(iterator); | 5953 Py_DECREF(iterator); |
5958 Py_DECREF(valObject); | 5954 Py_DECREF(valObject); |