Mercurial > cpython-lru_cache-weakref
diff Python/Python-ast.c @ 36794:df843b07f5fe legacy-trunk
Fix memory leak on attributes.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Thu, 02 Mar 2006 00:31:27 +0000 |
| parents | 57322cb2ca11 |
| children | f731859e9b3b dfc33ec7f73a |
line wrap: on
line diff
--- a/Python/Python-ast.c Thu Mar 02 00:21:10 2006 +0000 +++ b/Python/Python-ast.c Thu Mar 02 00:31:27 2006 +0000 @@ -2324,10 +2324,14 @@ } value = ast2obj_int(o->lineno); if (!value) goto failed; - PyObject_SetAttrString(result, "lineno", value); + if (PyObject_SetAttrString(result, "lineno", value) < 0) + goto failed; + Py_DECREF(value); value = ast2obj_int(o->col_offset); if (!value) goto failed; - PyObject_SetAttrString(result, "col_offset", value); + if (PyObject_SetAttrString(result, "col_offset", value) < 0) + goto failed; + Py_DECREF(value); return result; failed: Py_XDECREF(value); @@ -2643,10 +2647,14 @@ } value = ast2obj_int(o->lineno); if (!value) goto failed; - PyObject_SetAttrString(result, "lineno", value); + if (PyObject_SetAttrString(result, "lineno", value) < 0) + goto failed; + Py_DECREF(value); value = ast2obj_int(o->col_offset); if (!value) goto failed; - PyObject_SetAttrString(result, "col_offset", value); + if (PyObject_SetAttrString(result, "col_offset", value) < 0) + goto failed; + Py_DECREF(value); return result; failed: Py_XDECREF(value); @@ -3023,7 +3031,7 @@ if (PyDict_SetItemString(d, "AST", (PyObject*)AST_type) < 0) return; if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0) return; - if (PyModule_AddStringConstant(m, "__version__", "42649") < 0) + if (PyModule_AddStringConstant(m, "__version__", "42753") < 0) return; if(PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return; if(PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)
