Permalink
Browse files

updated for version 7.3.670

Problem:    Python: memory leaks when there are exceptions.
Solution:   Add DICTKEY_UNREF in the right places. (ZyX)
  • Loading branch information...
brammool committed Sep 21, 2012
1 parent f94a13c commit 696c2116dc5e5403644d7f7dcaea49b83cf5a8f5
Showing with 6 additions and 2 deletions.
  1. +4 −2 src/if_py_both.h
  2. +2 −0 src/version.c
@@ -799,14 +799,14 @@ DictionaryItem(PyObject *self, PyObject *keyObject)
di = dict_find(((DictionaryObject *) (self))->dict, key, -1);
DICTKEY_UNREF
if (di == NULL)
{
PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
return NULL;
}
DICTKEY_UNREF
return ConvertToPyObject(&di->di_tv);
}
@@ -835,6 +835,7 @@ DictionaryAssItem(PyObject *self, PyObject *keyObject, PyObject *valObject)
if (di == NULL)
{
DICTKEY_UNREF
PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
return -1;
}
@@ -859,6 +860,7 @@ DictionaryAssItem(PyObject *self, PyObject *keyObject, PyObject *valObject)
if (dict_add(d, di) == FAIL)
{
DICTKEY_UNREF
vim_free(di);
PyErr_SetVim(_("failed to add key to dictionary"));
return -1;
@@ -719,6 +719,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
670,
/**/
669,
/**/

0 comments on commit 696c211

Please sign in to comment.