Mercurial > vim
changeset 8915:8cbf472483fa v7.4.1744
commit https://github.com/vim/vim/commit/66210042892389d36e3d37203ec77f61467bfb1c
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Apr 15 20:40:41 2016 +0200
patch 7.4.1744
Problem: Python: Converting a sequence may leak memory.
Solution: Decrement a reference. (Nikolay Pavlov)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 15 Apr 2016 20:45:04 +0200 |
parents | cdaeb8808626 |
children | 17a4f5a4d8a8 |
files | src/if_py_both.h src/version.c |
diffstat | 2 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -6070,7 +6070,7 @@ ConvertFromPyMapping(PyObject *obj, typv ConvertFromPySequence(PyObject *obj, typval_T *tv) { PyObject *lookup_dict; - int ret = 0; + int ret; if (!(lookup_dict = PyDict_New())) return -1; @@ -6080,9 +6080,10 @@ ConvertFromPySequence(PyObject *obj, typ tv->v_type = VAR_LIST; tv->vval.v_list = (((ListObject *)(obj))->list); ++tv->vval.v_list->lv_refcount; + ret = 0; } else if (PyIter_Check(obj) || PySequence_Check(obj)) - return convert_dl(obj, tv, pyseq_to_tv, lookup_dict); + ret = convert_dl(obj, tv, pyseq_to_tv, lookup_dict); else { PyErr_FORMAT(PyExc_TypeError,