diff options
Diffstat (limited to 'Python/symtable.c')
| -rw-r--r-- | Python/symtable.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/Python/symtable.c b/Python/symtable.c index a0b786b..1c291bb 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -24,16 +24,18 @@ ste_new(struct symtable *st, identifier name, _Py_block_ty block,          void *key, int lineno, int col_offset)  {      PySTEntryObject *ste = NULL; -    PyObject *k; +    PyObject *k = NULL;      k = PyLong_FromVoidPtr(key);      if (k == NULL)          goto fail;      ste = PyObject_New(PySTEntryObject, &PySTEntry_Type); -    if (ste == NULL) +    if (ste == NULL) { +        Py_DECREF(k);          goto fail; +    }      ste->ste_table = st; -    ste->ste_id = k; +    ste->ste_id = k; /* ste owns reference to k */      ste->ste_name = name;      Py_INCREF(name);  | 
